Ref #539: Run time check on GDK display backend (2)
authorColin Clark <colin.clark@cclark.uk>
Thu, 10 Dec 2020 16:43:33 +0000 (16:43 +0000)
committerColin Clark <colin.clark@cclark.uk>
Thu, 10 Dec 2020 16:43:33 +0000 (16:43 +0000)
https://github.com/BestImageViewer/geeqie/issues/829

Include a run time check to determine which backend is being used.
There was a seg. fault when Wayland was being used.

src/layout.c

index 2899d54..685e200 100644 (file)
@@ -2410,8 +2410,15 @@ void layout_sync_options_with_current_state(LayoutWindow *lw)
 
 #ifdef GDK_WINDOWING_X11
 #if GTK_CHECK_VERSION(3,10,0)
-       window = gtk_widget_get_window(GTK_WIDGET(lw->window));
-       lw->options.workspace = gdk_x11_window_get_desktop(window);
+       GdkDisplay *display;
+
+       display = gdk_display_get_default();
+
+       if (GDK_IS_X11_DISPLAY(display))
+               {
+               window = gtk_widget_get_window(GTK_WIDGET(lw->window));
+               lw->options.workspace = gdk_x11_window_get_desktop(window);
+               }
 #endif
 #endif
        return;