From ca760353999c2e0c6f48cda68a79ec3d8fbb055a Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Fri, 10 May 2013 17:20:24 +0200 Subject: 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 --- gtk/spice-widget.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3