mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-09-22 11:00:49 +00:00
polkit-gnome: Fix build against gtk+3 without the X11 backend
0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch includes gdk/gdkx.h unconditionally, which does not exist when gtk+3 is configured without the X11 backend, as is the case on wayland only distros: polkitgnomeauthenticator.c:29:10: fatal error: 'gdk/gdkx.h' file not found The patch already checks GDK_IS_X11_WINDOW() at runtime, but that is not enough: the macro is declared in gdkx.h too, so the include and the gdk_x11_get_server_time() call have to be compiled out as well. Guard both with GDK_WINDOWING_X11 and keep gtk_window_present() as the non-X11 path. Include gdk/gdk.h explicitly before the guard. GDK_WINDOWING_X11 comes from gdkconfig.h and no gdk or gtk header is pulled in earlier in that file, so without it the guard would always be false and X11 builds would silently lose the fresh timestamp instead of failing to build. Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
+27
-8
@@ -8,41 +8,60 @@ Bug: https://bugzilla.gnome.org/show_bug.cgi?id=676076
|
||||
Bug-Debian: https://bugs.debian.org/684300
|
||||
Bug-Ubuntu: https://launchpad.net/bugs/946171
|
||||
|
||||
Guard the X11 specific parts with GDK_WINDOWING_X11 so this still builds
|
||||
against a gtk+3 configured without the X11 backend, as is the case on
|
||||
wayland only distros:
|
||||
|
||||
polkitgnomeauthenticator.c:29:10: fatal error: 'gdk/gdkx.h' file not found
|
||||
|
||||
gdk/gdkx.h does not exist in such a build, and GDK_IS_X11_WINDOW() is
|
||||
declared there too, so the include and the gdk_x11_get_server_time() call
|
||||
both have to be compiled out rather than only guarded at runtime.
|
||||
|
||||
gdk/gdk.h is included explicitly before the guard because GDK_WINDOWING_X11
|
||||
comes from gdkconfig.h, and no gdk or gtk header is pulled in earlier in
|
||||
this file; without it the guard would always be false and X11 builds would
|
||||
silently lose the fresh timestamp.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/polkitgnomeauthenticator.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
src/polkitgnomeauthenticator.c | 18 +++++++++++++++++-
|
||||
1 file changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/polkitgnomeauthenticator.c b/src/polkitgnomeauthenticator.c
|
||||
index 23163b4..e57d76e 100644
|
||||
index 23163b4..ae237de 100644
|
||||
--- a/src/polkitgnomeauthenticator.c
|
||||
+++ b/src/polkitgnomeauthenticator.c
|
||||
@@ -26,6 +26,7 @@
|
||||
@@ -26,6 +26,10 @@
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#include <glib/gi18n.h>
|
||||
+#include <gdk/gdk.h>
|
||||
+#ifdef GDK_WINDOWING_X11
|
||||
+#include <gdk/gdkx.h>
|
||||
+#endif
|
||||
|
||||
#include <polkit/polkit.h>
|
||||
#include <polkitagent/polkitagent.h>
|
||||
@@ -306,7 +307,17 @@ session_request (PolkitAgentSession *session,
|
||||
@@ -306,7 +310,19 @@ session_request (PolkitAgentSession *session,
|
||||
}
|
||||
|
||||
gtk_widget_show_all (GTK_WIDGET (authenticator->dialog));
|
||||
- gtk_window_present (GTK_WINDOW (authenticator->dialog));
|
||||
+#ifdef GDK_WINDOWING_X11
|
||||
+ GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (authenticator->dialog));
|
||||
+
|
||||
+ if (GDK_IS_X11_WINDOW (window))
|
||||
+ {
|
||||
+ gtk_window_present_with_time (GTK_WINDOW (authenticator->dialog), gdk_x11_get_server_time (window));
|
||||
+ gtk_window_present_with_time (GTK_WINDOW (authenticator->dialog), gdk_x11_get_server_time (window));
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+ {
|
||||
+ gtk_window_present (GTK_WINDOW (authenticator->dialog));
|
||||
+ gtk_window_present (GTK_WINDOW (authenticator->dialog));
|
||||
+ }
|
||||
+
|
||||
password = polkit_gnome_authentication_dialog_run_until_response_for_prompt (POLKIT_GNOME_AUTHENTICATION_DIALOG (authenticator->dialog),
|
||||
modified_request,
|
||||
echo_on,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user