Compare commits
No commits in common. 'c9' and 'i10c-beta' have entirely different histories.
@ -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
|
Loading…
Reference in new issue