summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2013-05-10 17:20:24 +0200
committerMarc-André Lureau <marcandre.lureau@redhat.com>2013-05-11 21:18:31 +0200
commitca760353999c2e0c6f48cda68a79ec3d8fbb055a (patch)
tree772b3057f0ba49f80b818c8b8e51a873239a89fd
parent063c1b9c0627c87eb7f5369c4a6b9776a22e5c7d (diff)
widget: check backend is X11
spice-gtk blindly assume the backend is X11 if it's compiled on Unix. But nowadays, gtk+ support runtime backend selection. https://bugzilla.redhat.com/show_bug.cgi?id=961577
-rw-r--r--gtk/spice-widget.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c
index e4ef3ce..481f482 100644
--- a/gtk/spice-widget.c
+++ b/gtk/spice-widget.c
@@ -784,8 +784,13 @@ static void set_mouse_accel(SpiceDisplay *display, gboolean enabled)
#if defined GDK_WINDOWING_X11
GdkWindow *w = GDK_WINDOW(gtk_widget_get_window(GTK_WIDGET(display)));
- Display *x_display = GDK_WINDOW_XDISPLAY(w);
+ if (!GDK_IS_X11_DISPLAY(gdk_window_get_display(w))) {
+ SPICE_DEBUG("FIXME: gtk backend is not X11");
+ return;
+ }
+
+ Display *x_display = GDK_WINDOW_XDISPLAY(w);
if (enabled) {
/* restore mouse acceleration */
XChangePointerControl(x_display, True, True,
@@ -2600,6 +2605,11 @@ static void sync_keyboard_lock_modifiers(SpiceDisplay *display)
if (w == NULL) /* it can happen if the display is not yet shown */
return;
+ if (!GDK_IS_X11_DISPLAY(gdk_window_get_display(w))) {
+ SPICE_DEBUG("FIXME: gtk backend is not X11");
+ return;
+ }
+
x_display = GDK_WINDOW_XDISPLAY(w);
modifiers = get_keyboard_lock_modifiers(x_display);
if (d->inputs)