Compare commits

...

No commits in common. 'c9' and 'i10c-beta' have entirely different histories.

2
.gitignore vendored

@ -1 +1 @@
SOURCES/xdg-desktop-portal-gnome-41.2.tar.xz
SOURCES/xdg-desktop-portal-gnome-45.1.tar.xz

@ -1 +1 @@
0ff21a277478d553fcb740c7cd01f28c8d932997 SOURCES/xdg-desktop-portal-gnome-41.2.tar.xz
08966f84d4debab6fb635a7fcd63326b8394b133 SOURCES/xdg-desktop-portal-gnome-45.1.tar.xz

@ -1,176 +0,0 @@
From 396a999f3e9daa0e3511e590339915e5ad9b6b31 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 24 Oct 2022 16:10:00 -0300
Subject: [PATCH 1/4] screencastwidget: Trivial style cleanup
(cherry picked from commit 663994bc20a0d93264a0b68222522c68e8525ba4)
---
src/screencastwidget.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/screencastwidget.c b/src/screencastwidget.c
index cdd57dc..0009a35 100644
--- a/src/screencastwidget.c
+++ b/src/screencastwidget.c
@@ -266,9 +266,9 @@ connect_windows_changed_listener (ScreenCastWidget *widget)
g_assert (!widget->windows_changed_handler_id);
widget->windows_changed_handler_id =
g_signal_connect (widget->shell_introspect,
- "windows-changed",
- G_CALLBACK (on_windows_changed),
- widget);
+ "windows-changed",
+ G_CALLBACK (on_windows_changed),
+ widget);
shell_introspect_ref_listeners (widget->shell_introspect);
}
--
2.38.1
From 5e7444c4ac4e0bc181a7cee9c00b3e542f77e0f6 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 24 Oct 2022 16:10:31 -0300
Subject: [PATCH 2/4] screencastwidget: Use g_clear_signal_handler
Small cleanup
(cherry picked from commit e0002330c41d62f49d9b58002ae1a607a79c67bf)
---
src/meson.build | 2 +-
src/screencastwidget.c | 5 ++---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/meson.build b/src/meson.build
index 6d2e476..8341aa1 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -60,7 +60,7 @@ deps = [
declare_dependency(sources: built_sources),
meson.get_compiler('c').find_library('m'),
dependency('fontconfig'),
- dependency('glib-2.0', version: '>= 2.44'),
+ dependency('glib-2.0', version: '>= 2.62'),
dependency('gio-unix-2.0'),
dependency('gtk4', version: '>= 4.0'),
dependency('gsettings-desktop-schemas'),
diff --git a/src/screencastwidget.c b/src/screencastwidget.c
index 0009a35..82dd3bd 100644
--- a/src/screencastwidget.c
+++ b/src/screencastwidget.c
@@ -276,9 +276,8 @@ static void
disconnect_windows_changed_listener (ScreenCastWidget *widget)
{
g_assert (widget->windows_changed_handler_id);
- g_signal_handler_disconnect (widget->shell_introspect,
- widget->windows_changed_handler_id);
- widget->windows_changed_handler_id = 0;
+ g_clear_signal_handler (&widget->windows_changed_handler_id,
+ widget->shell_introspect);
shell_introspect_unref_listeners (widget->shell_introspect);
}
--
2.38.1
From 6b491b555bb3514da4fcadb4147813217392724b Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 24 Oct 2022 18:55:51 -0300
Subject: [PATCH 3/4] Import newer org.gnome.Shell.Introspect.xml
It has a handy signal we will use soon, the "WindowsChanged" signal.
(cherry picked from commit 41277ae33a9c9d54e6df7d7277854ccc79265fc2)
---
data/org.gnome.Shell.Introspect.xml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/data/org.gnome.Shell.Introspect.xml b/data/org.gnome.Shell.Introspect.xml
index d71f241..cb19cfe 100644
--- a/data/org.gnome.Shell.Introspect.xml
+++ b/data/org.gnome.Shell.Introspect.xml
@@ -18,6 +18,12 @@
-->
<signal name="RunningApplicationsChanged" />
+ <!--
+ WindowsChanged:
+ @short_description: Notifies when any window opens or closes
+ -->
+ <signal name="WindowsChanged" />
+
<!--
GetRunningApplications:
@short_description: Retrieves the description of all running applications
@@ -70,6 +76,14 @@
-->
<property name="AnimationsEnabled" type="b" access="read"/>
+ <!--
+ ScreenSize:
+ @short_description: The size of the screen
+
+ Since: 3
+ -->
+ <property name="ScreenSize" type="(ii)" access="read"/>
+
<property name="version" type="u" access="read"/>
</interface>
</node>
--
2.38.1
From 70b25b7abb8223876f0ca509852e21ec26e3f624 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 24 Oct 2022 18:56:59 -0300
Subject: [PATCH 4/4] shellintrospect: React to "windows-changed" signal
In addition to fetching the list of windows whenever a new
listener registers, listen to the "windows-changed" signal
from the D-Bus proxy and update the list of windows when
Shell signals us.
Fixes
https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/issues/17
(cherry picked from commit ddc82436d623a7904882230ede0049a8e3ee6595)
---
src/shellintrospect.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/shellintrospect.c b/src/shellintrospect.c
index 6b007b4..1fa8b93 100644
--- a/src/shellintrospect.c
+++ b/src/shellintrospect.c
@@ -189,6 +189,14 @@ shell_introspect_are_animations_enabled (ShellIntrospect *shell_introspect,
return TRUE;
}
+static void
+on_windows_changed_cb (GDBusProxy *proxy,
+ ShellIntrospect *shell_introspect)
+{
+ if (shell_introspect->num_listeners > 0)
+ sync_state (shell_introspect);
+}
+
static void
sync_animations_enabled (ShellIntrospect *shell_introspect)
{
@@ -233,6 +241,10 @@ on_shell_introspect_proxy_acquired (GObject *object,
shell_introspect->proxy = proxy;
+ g_signal_connect (proxy, "windows-changed",
+ G_CALLBACK (on_windows_changed_cb),
+ shell_introspect);
+
if (shell_introspect->num_listeners > 0)
sync_state (shell_introspect);
--
2.38.1

@ -0,0 +1,81 @@
commit d0428d7b1aaf2c73293bdc003facc4cabe862e5d
Author: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Wed Dec 20 19:07:16 2023 -0300
inputcapture: Store dialog as a GtkWindow
This allows calling g_clear_pointer() without a cast.
Closes:
https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/issues/113
diff --git a/src/inputcapture.c b/src/inputcapture.c
index ffa91a1dacbbeee2..7dfefe1b2995f246 100644
--- a/src/inputcapture.c
+++ b/src/inputcapture.c
@@ -70,7 +70,7 @@ typedef struct _InputCaptureDialogHandle
char *session_handle;
GDBusMethodInvocation *create_session_invocation;
- GtkWidget *dialog;
+ GtkWindow *dialog;
ExternalWindow *external_parent;
unsigned int capabilities;
@@ -89,7 +89,7 @@ G_DEFINE_TYPE (InputCaptureSession, input_capture_session, session_get_type ())
static void
input_capture_dialog_handle_free (InputCaptureDialogHandle *dialog_handle)
{
- g_clear_pointer ((GtkWindow**)&dialog_handle->dialog, gtk_window_destroy);
+ g_clear_pointer (&dialog_handle->dialog, gtk_window_destroy);
g_clear_object (&dialog_handle->external_parent);
g_object_unref (dialog_handle->request);
g_free (dialog_handle->session_handle);
@@ -150,8 +150,7 @@ on_request_handle_close_cb (XdpImplRequest *object,
GDBusMethodInvocation *invocation,
InputCaptureDialogHandle *dialog_handle)
{
- gtk_window_close (GTK_WINDOW (dialog_handle->dialog));
-
+ gtk_window_close (dialog_handle->dialog);
return FALSE;
}
@@ -387,7 +386,7 @@ create_input_capture_dialog (GDBusMethodInvocation *invocation,
ExternalWindow *external_parent;
GdkSurface *surface;
GtkWidget *fake_parent;
- GtkWidget *dialog;
+ GtkWindow *dialog;
if (parent_window)
{
@@ -404,9 +403,9 @@ create_input_capture_dialog (GDBusMethodInvocation *invocation,
fake_parent = g_object_new (GTK_TYPE_WINDOW, NULL);
g_object_ref_sink (fake_parent);
- dialog = GTK_WIDGET (input_capture_dialog_new (request->app_id));
- gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (fake_parent));
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ dialog = GTK_WINDOW (input_capture_dialog_new (request->app_id));
+ gtk_window_set_transient_for (dialog, GTK_WINDOW (fake_parent));
+ gtk_window_set_modal (dialog, TRUE);
window_group = gtk_window_group_new ();
gtk_window_group_add_window (window_group, dialog);
@@ -424,13 +423,13 @@ create_input_capture_dialog (GDBusMethodInvocation *invocation,
g_signal_connect (dialog, "done",
G_CALLBACK (on_input_capture_dialog_done_cb), dialog_handle);
- gtk_widget_realize (dialog);
+ gtk_widget_realize (GTK_WIDGET (dialog));
surface = gtk_native_get_surface (GTK_NATIVE (dialog));
if (external_parent)
external_window_set_parent_of (external_parent, surface);
- gtk_widget_show (dialog);
+ gtk_window_present (dialog);
}
static gboolean

@ -1,26 +1,37 @@
## START: Set by rpmautospec
## (rpmautospec version 0.6.1)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 5;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
%global tarball_version %%(echo %{version} | tr '~' '.')
# Required for xdp_impl_background_emit_running_applications_changed
%global xdg_desktop_portal_version 1.5.4
%global xdg_desktop_portal_version 1.17.0
Name: xdg-desktop-portal-gnome
Version: 41.2
Release: 2%{?dist}
Version: 45.1
Release: %autorelease
Summary: Backend implementation for xdg-desktop-portal using GNOME
License: LGPLv2+
License: LGPL-2.1-or-later
URL: https://gitlab.gnome.org/GNOME/%{name}
Source0: https://download.gnome.org/sources/%{name}/41/%{name}-%{tarball_version}.tar.xz
Patch0: windows-changed-signal.patch
Source0: https://download.gnome.org/sources/%{name}/45/%{name}-%{tarball_version}.tar.xz
Patch0: xdg-desktop-portal-gnome-c89.patch
BuildRequires: desktop-file-utils
BuildRequires: gcc
BuildRequires: gettext
BuildRequires: meson
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gnome-bg-4)
BuildRequires: pkgconfig(gnome-desktop-4)
BuildRequires: pkgconfig(gsettings-desktop-schemas)
BuildRequires: pkgconfig(gtk4)
BuildRequires: pkgconfig(libadwaita-1)
BuildRequires: pkgconfig(xdg-desktop-portal) >= %{xdg_desktop_portal_version}
BuildRequires: systemd-rpm-macros
Requires: dbus
@ -28,6 +39,11 @@ Requires: dbus-common
Requires: xdg-desktop-portal >= %{xdg_desktop_portal_version}
Supplements: gnome-shell
# https://github.com/containers/composefs/pull/229#issuecomment-1838735764
%if 0%{?rhel} >= 10
ExcludeArch: %{ix86}
%endif
%description
A backend implementation for xdg-desktop-portal that is using various pieces of
GNOME infrastructure, such as the org.gnome.Shell.Screenshot or
@ -62,29 +78,120 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
%{_libexecdir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/dbus-1/services/org.freedesktop.impl.portal.desktop.gnome.service
%{_datadir}/glib-2.0/schemas/xdg-desktop-portal-gnome.gschema.xml
%{_datadir}/xdg-desktop-portal/portals/gnome.portal
%{_userunitdir}/%{name}.service
%changelog
* Tue Dec 13 2022 Jonas Ådahl <jadahl@redhat.com> - 41.2-2
- Keep screen share window list up to date
Resolves: #2148362
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 45.1-5
- Rebuilt for MSVSphere 10
## START: Generated by rpmautospec
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 45.1-5
- Bump release for June 2024 mass rebuild
* Mon Jan 29 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 45.1-4
- Drop i686 in RHEL 10
* Mon Jan 29 2024 Florian Weimer <fweimer@redhat.com> - 45.1-3
- Backport upstream patch for GCC 14 compatibility
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 45.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Nov 26 2023 Kalev Lember <klember@redhat.com> - 45.1-1
- Update to 45.1
* Wed Sep 20 2023 Kalev Lember <klember@redhat.com> - 45.0-1
- Update to 45.0
* Wed Sep 06 2023 Kalev Lember <klember@redhat.com> - 45~rc-1
- Update to 45.rc
* Sat Aug 05 2023 Kalev Lember <klember@redhat.com> - 45~beta-1
- Update to 45.beta
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 45~alpha-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Mon Jul 17 2023 David King <amigadave@amigadave.com> - 45~alpha-1
- Update to 45.alpha
* Fri Apr 21 2023 David King <amigadave@amigadave.com> - 44.1-1
- Update to 44.1 (#2188642)
* Mon Apr 10 2023 Adam Williamson <awilliam@redhat.com> - 44.0-2
- Backport MR #78 to help with apps launching slow on KDE (#2176759)
* Mon Mar 20 2023 David King <amigadave@amigadave.com> - 44.0-1
- Update to 44.0 (#2117832)
* Tue Mar 07 2023 David King <amigadave@amigadave.com> - 44~rc-1
- Update to 44.rc
* Wed Jun 01 2022 Debarshi Ray <rishi@fedoraproject.org> - 41.2-1
- Update to 41.2
Resolves: #2083018
* Wed Feb 15 2023 David King <amigadave@amigadave.com> - 44~beta-1
- Update to 44.beta
* Tue Apr 12 2022 Debarshi Ray <rishi@fedoraproject.org> - 41.1-3
- Recommend this portal backend for all GNOME users
Resolves: #2051473
* Mon Feb 06 2023 David King <amigadave@amigadave.com> - 44~alpha-1
- Update to 44.alpha
* Tue Apr 05 2022 Debarshi Ray <rishi@fedoraproject.org> - 41.1-2
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 43.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Oct 27 2022 David King <amigadave@amigadave.com> - 43.1-1
- Update to 43.1
* Mon Sep 19 2022 Kalev Lember <klember@redhat.com> - 43.0-1
- Update to 43.0
* Tue Sep 06 2022 Kalev Lember <klember@redhat.com> - 43~rc-1
- Update to 43.rc
* Fri Aug 12 2022 Kalev Lember <klember@redhat.com> - 43~beta-1
- Update to 43.beta
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 43~alpha-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jul 15 2022 Kalev Lember <klember@redhat.com> - 43~alpha-1
- Update to 43.alpha
* Mon Jul 04 2022 Debarshi Ray <debarshir@gnome.org> - 42.3-1
- Update to 42.3
* Mon Jul 04 2022 Debarshi Ray <debarshir@gnome.org> - 42.2-1
- Update to 42.2
* Wed Apr 27 2022 David King <amigadave@amigadave.com> - 42.1-1
- Update to 42.1
* Fri Apr 08 2022 Michael Catanzaro <mcatanzaro@redhat.com> - 42.0.1-4
- Simplify Supplements
* Tue Apr 05 2022 Debarshi Ray <rishi@fedoraproject.org> - 42.0.1-2
- Make the Supplements specific to Fedora to retain consistency with
xdg-desktop-portal-gtk
Resolves: #2051473
* Sat Mar 05 2022 Debarshi Ray <rishi@fedoraproject.org> - 41.1-1
* Fri Mar 18 2022 David King <amigadave@amigadave.com> - 42.0.1-1
- Update to 42.0.1
* Fri Mar 18 2022 David King <amigadave@amigadave.com> - 42.0-1
- Update to 42.0
* Tue Mar 08 2022 David King <amigadave@amigadave.com> - 42~rc-1
- Update to 42.rc
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 41.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Sep 25 2021 Kalev Lember <klember@redhat.com> - 41.1-1
- Update to 41.1
* Sat Sep 18 2021 David King <amigadave@amigadave.com> - 41.0-1
- Update to 41.0 (#2005532)
* Thu Sep 16 2021 David King <amigadave@amigadave.com> - 41~alpha-1
- Initial version
Resolves: #2051473
## END: Generated by rpmautospec

Loading…
Cancel
Save