diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2013-05-10 17:20:24 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2013-05-11 21:18:31 +0200 |
commit | ca760353999c2e0c6f48cda68a79ec3d8fbb055a (patch) | |
tree | 772b3057f0ba49f80b818c8b8e51a873239a89fd | |
parent | 063c1b9c0627c87eb7f5369c4a6b9776a22e5c7d (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.c | 12 |
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) |