Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xdg-desktop-portal-hyprland for openSUSE:Factory checked in at 2023-05-31 21:54:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xdg-desktop-portal-hyprland (Old) and /work/SRC/openSUSE:Factory/.xdg-desktop-portal-hyprland.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xdg-desktop-portal-hyprland" Wed May 31 21:54:24 2023 rev:2 rq:1089888 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/xdg-desktop-portal-hyprland/xdg-desktop-portal-hyprland.changes 2023-05-23 14:55:08.418695031 +0200 +++ /work/SRC/openSUSE:Factory/.xdg-desktop-portal-hyprland.new.1533/xdg-desktop-portal-hyprland.changes 2023-05-31 21:54:26.312984511 +0200 @@ -1,0 +2,7 @@ +Tue May 30 11:15:39 UTC 2023 - Soc Virnyl Estela <socvirnyl.est...@gmail.com> + +- Update to version 0.4.0: + * screencast: restore window by class + * some nix stuff + +------------------------------------------------------------------- Old: ---- xdg-desktop-portal-hyprland-0.3.1.tar.gz New: ---- xdg-desktop-portal-hyprland-0.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xdg-desktop-portal-hyprland.spec ++++++ --- /var/tmp/diff_new_pack.iTWvQA/_old 2023-05-31 21:54:26.780987277 +0200 +++ /var/tmp/diff_new_pack.iTWvQA/_new 2023-05-31 21:54:26.784987300 +0200 @@ -18,7 +18,7 @@ %define _protocol_version 0.2 Name: xdg-desktop-portal-hyprland -Version: 0.3.1 +Version: 0.4.0 Release: 0 Summary: Extended xdg-desktop-portal backend for Hyprland License: MIT ++++++ xdg-desktop-portal-hyprland-0.3.1.tar.gz -> xdg-desktop-portal-hyprland-0.4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-hyprland-0.3.1/flake.lock new/xdg-desktop-portal-hyprland-0.4.0/flake.lock --- old/xdg-desktop-portal-hyprland-0.3.1/flake.lock 2023-04-25 18:16:24.000000000 +0200 +++ new/xdg-desktop-portal-hyprland-0.4.0/flake.lock 2023-05-29 20:42:44.000000000 +0200 @@ -22,11 +22,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1680945546, - "narHash": "sha256-8FuaH5t/aVi/pR1XxnF0qi4WwMYC+YxlfdsA0V+TEuQ=", + "lastModified": 1683014792, + "narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d9f759f2ea8d265d974a6e1259bd510ac5844c5d", + "rev": "1a411f23ba299db155a5b45d5e145b85a7aafc42", "type": "github" }, "original": { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-hyprland-0.3.1/flake.nix new/xdg-desktop-portal-hyprland-0.4.0/flake.nix --- old/xdg-desktop-portal-hyprland-0.3.1/flake.nix 2023-04-25 18:16:24.000000000 +0200 +++ new/xdg-desktop-portal-hyprland-0.4.0/flake.nix 2023-05-29 20:42:44.000000000 +0200 @@ -20,7 +20,14 @@ "aarch64-linux" "x86_64-linux" ]; - pkgsFor = nixpkgs.legacyPackages; + pkgsFor = genSystems (system: + import nixpkgs { + inherit system; + overlays = [ + self.overlays.default + inputs.hyprland-protocols.overlays.default + ]; + }); mkDate = longDate: (lib.concatStringsSep "-" [ (builtins.substring 0 4 longDate) (builtins.substring 4 2 longDate) @@ -28,18 +35,17 @@ ]); version = "0.pre" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty"); in { - overlays.default = _: prev: rec { - xdg-desktop-portal-hyprland = prev.callPackage ./nix/default.nix { - stdenv = prev.gcc12Stdenv; - inherit (inputs.hyprland-protocols.packages.${prev.hostPlatform.system}) hyprland-protocols; - inherit hyprland-share-picker version; + overlays.default = final: prev: { + xdg-desktop-portal-hyprland = final.callPackage ./nix/default.nix { + inherit (final) hyprland-protocols hyprland-share-picker; + inherit version; }; - hyprland-share-picker = prev.libsForQt5.callPackage ./nix/hyprland-share-picker.nix {inherit version;}; + hyprland-share-picker = final.libsForQt5.callPackage ./nix/hyprland-share-picker.nix {inherit version;}; }; packages = genSystems (system: - (self.overlays.default null pkgsFor.${system}) + (self.overlays.default pkgsFor.${system} pkgsFor.${system}) // {default = self.packages.${system}.xdg-desktop-portal-hyprland;}); formatter = genSystems (system: pkgsFor.${system}.alejandra); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-hyprland-0.3.1/include/screencast_common.h new/xdg-desktop-portal-hyprland-0.4.0/include/screencast_common.h --- old/xdg-desktop-portal-hyprland-0.3.1/include/screencast_common.h 2023-04-25 18:16:24.000000000 +0200 +++ new/xdg-desktop-portal-hyprland-0.4.0/include/screencast_common.h 2023-05-29 20:42:44.000000000 +0200 @@ -64,7 +64,7 @@ uint64_t tv_sec; uint32_t tv_nsec; struct xdpw_frame_damage damage[4]; - uint32_t damage_count; + uint32_t damage_count; struct xdpw_buffer *xdpw_buffer; struct pw_buffer *pw_buffer; }; @@ -164,6 +164,7 @@ struct xdph_restore_token { char *token; char *outputPort; // NULL if not set + char *windowClass; // NULL if not set uint64_t windowHandle; // 0 if not set struct wl_list link; bool withCursor; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-hyprland-0.3.1/meson.build new/xdg-desktop-portal-hyprland-0.4.0/meson.build --- old/xdg-desktop-portal-hyprland-0.3.1/meson.build 2023-04-25 18:16:24.000000000 +0200 +++ new/xdg-desktop-portal-hyprland-0.4.0/meson.build 2023-05-29 20:42:44.000000000 +0200 @@ -1,7 +1,7 @@ project( 'xdg-desktop-portal-hyprland', 'c', - version: '0.2.1', + version: '0.4.0', license: 'MIT', meson_version: '>=0.58.0', default_options: ['c_std=c11', 'warning_level=2', 'werror=false'], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-hyprland-0.3.1/src/screencast/screencast.c new/xdg-desktop-portal-hyprland-0.4.0/src/screencast/screencast.c --- old/xdg-desktop-portal-hyprland-0.3.1/src/screencast/screencast.c 2023-04-25 18:16:24.000000000 +0200 +++ new/xdg-desktop-portal-hyprland-0.4.0/src/screencast/screencast.c 2023-05-29 20:42:44.000000000 +0200 @@ -132,14 +132,26 @@ if (token) { // attempt to restore if (token->outputPort) { - struct xdpw_wlr_output *output; - wl_list_for_each(output, &ctx->output_list, link) { - if (strcmp(output->name, token->outputPort) == 0) { - out.output = output; - tokenSuccess = true; - break; + if (strncmp(token->outputPort, "class:", 6) == 0) { + struct SToplevelEntry *current; + wl_list_for_each(current, &ctx->toplevel_resource_list, link) { + if (strcmp(token->outputPort + 6, current->clazz) == 0) { + out.window_handle = token->windowHandle; + tokenSuccess = true; + break; + } + } + } else { + struct xdpw_wlr_output *output; + wl_list_for_each(output, &ctx->output_list, link) { + if (strcmp(output->name, token->outputPort) == 0) { + out.output = output; + tokenSuccess = true; + break; + } } } + } else if (token->windowHandle > 0) { struct SToplevelEntry *current; wl_list_for_each(current, &ctx->toplevel_resource_list, link) { @@ -249,6 +261,16 @@ restoreToken->token = uuid_str; restoreToken->withCursor = withCursor; + if (windowSelected) { + struct SToplevelEntry *current; + wl_list_for_each(current, &state->screencast.toplevel_resource_list, link) { + if (current->handle == restoreToken->windowHandle) { + restoreToken->windowClass = getFormat("class:%x", current->clazz); + break; + } + } + } + return restoreToken; } @@ -644,12 +666,13 @@ logprint(DEBUG, "dbus: start: returning node %d", (int)cast->node_id); if (restoreToken) - ret = sd_bus_message_append(reply, "ua{sv}", PORTAL_RESPONSE_SUCCESS, 3, "streams", "a(ua{sv})", 1, cast->node_id, 3, "position", "(ii)", 0, - 0, "size", "(ii)", cast->screencopy_frame_info[WL_SHM].width, cast->screencopy_frame_info[WL_SHM].height, - "source_type", "u", (cast->target.output ? (1 << MONITOR) : (1 << WINDOW)), "persist_mode", "u", sess->persist, - "restore_data", "(suv)", "hyprland", 2, "(susbt)" /* amogus */, restoreToken->token, restoreToken->windowHandle, - (restoreToken->outputPort == NULL ? "" : restoreToken->outputPort), restoreToken->withCursor, - (unsigned long)time(NULL)); + ret = sd_bus_message_append( + reply, "ua{sv}", PORTAL_RESPONSE_SUCCESS, 3, "streams", "a(ua{sv})", 1, cast->node_id, 3, "position", "(ii)", 0, 0, "size", "(ii)", + cast->screencopy_frame_info[WL_SHM].width, cast->screencopy_frame_info[WL_SHM].height, "source_type", "u", + (cast->target.output ? (1 << MONITOR) : (1 << WINDOW)), "persist_mode", "u", sess->persist, "restore_data", "(suv)", "hyprland", 2, + "(susbt)" /* amogus */, restoreToken->token, restoreToken->windowHandle, + (restoreToken->outputPort == NULL ? (restoreToken->windowHandle ? restoreToken->windowClass : "") : restoreToken->outputPort), + restoreToken->withCursor, (unsigned long)time(NULL)); else ret = sd_bus_message_append(reply, "ua{sv}", PORTAL_RESPONSE_SUCCESS, 1, "streams", "a(ua{sv})", 1, cast->node_id, 3, "position", "(ii)", 0, 0, "size", "(ii)", cast->screencopy_frame_info[WL_SHM].width, cast->screencopy_frame_info[WL_SHM].height,