fepitre / rpms / gtk3

Forked from rpms/gtk3 4 years ago
Clone

Blame SOURCES/0001-a11y-Check-X11-display-at-runtime.patch

af9754
From 6b91ab848b86aa7968bb421f2f3f30b1c8ad6ba2 Mon Sep 17 00:00:00 2001
af9754
From: Olivier Fourdan <ofourdan@redhat.com>
af9754
Date: Mon, 10 Dec 2018 17:05:53 +0100
af9754
Subject: [PATCH] a11y: Check X11 display at runtime
af9754
af9754
`gtk_widget_accessible_grab_focus()` code checks that X11 isenabled at
af9754
build time and uses X11 specific functions such as
af9754
`gdk_x11_get_server_time()` regardless of the actual backend being used.
af9754
af9754
Check that we are using an X11 display when X11 is backend enabled, so
af9754
we do not crash when running on Wayland
af9754
af9754
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1507
af9754
---
af9754
 gtk/a11y/gtkwidgetaccessible.c | 9 +++++----
af9754
 1 file changed, 5 insertions(+), 4 deletions(-)
af9754
af9754
diff --git a/gtk/a11y/gtkwidgetaccessible.c b/gtk/a11y/gtkwidgetaccessible.c
af9754
index 2154e88239..b1b866c39c 100644
af9754
--- a/gtk/a11y/gtkwidgetaccessible.c
af9754
+++ b/gtk/a11y/gtkwidgetaccessible.c
af9754
@@ -648,11 +648,12 @@ gtk_widget_accessible_grab_focus (AtkComponent *component)
af9754
   if (gtk_widget_is_toplevel (toplevel))
af9754
     {
af9754
 #ifdef GDK_WINDOWING_X11
af9754
-      gtk_window_present_with_time (GTK_WINDOW (toplevel),
af9754
-      gdk_x11_get_server_time (gtk_widget_get_window (widget)));
af9754
-#else
af9754
-      gtk_window_present (GTK_WINDOW (toplevel));
af9754
+      if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (toplevel)))
af9754
+        gtk_window_present_with_time (GTK_WINDOW (toplevel),
af9754
+                                      gdk_x11_get_server_time (gtk_widget_get_window (widget)));
af9754
+      else
af9754
 #endif
af9754
+        gtk_window_present (GTK_WINDOW (toplevel));
af9754
     }
af9754
   return TRUE;
af9754
 }
af9754
-- 
af9754
2.19.2
af9754