summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Fourdan <ofourdan@redhat.com>2019-01-07 21:06:57 +0000
committerDaniel Boles <dboles.src@gmail.com>2019-01-07 21:06:57 +0000
commit58e273d0562392f1b0a19f6b733fdcf0a35acaf3 (patch)
tree2f7479936e2655a00fbfc90290971483aea671ac
parent1c14285deeb32c454f84fb0dcc3dae2459cedaee (diff)
downloadgtk+-58e273d0562392f1b0a19f6b733fdcf0a35acaf3.tar.gz
a11y: Check display in `*grab_cell_focus()`
Calling the accessibility function `grab_focus()` on a `GtkCell` under Wayland will cause the client to crash. This is another case of `gdk_x11_get_server_time()` being called regardless of the actual windowing backend used. Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1507
-rw-r--r--gtk/a11y/gtktreeviewaccessible.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c
index 37339ceb14..4c9f66fe9a 100644
--- a/gtk/a11y/gtktreeviewaccessible.c
+++ b/gtk/a11y/gtktreeviewaccessible.c
@@ -1174,11 +1174,12 @@ gtk_tree_view_accessible_grab_cell_focus (GtkCellAccessibleParent *parent,
if (gtk_widget_is_toplevel (toplevel))
{
#ifdef GDK_WINDOWING_X11
- gtk_window_present_with_time (GTK_WINDOW (toplevel),
- gdk_x11_get_server_time (gtk_widget_get_surface (widget)));
-#else
- gtk_window_present (GTK_WINDOW (toplevel));
+ if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (toplevel)))
+ gtk_window_present_with_time (GTK_WINDOW (toplevel),
+ gdk_x11_get_server_time (gtk_widget_get_surface (widget)));
+ else
#endif
+ gtk_window_present (GTK_WINDOW (toplevel));
}
return TRUE;