Ref #539: Run time check on GDK display backend (2)
authorColin Clark <[email protected]>
Thu, 10 Dec 2020 16:43:33 +0000 (16:43 +0000)
committerColin Clark <[email protected]>
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 2899d54410c8e8000e48d3bffa7806d8bd7cbf44..685e2005d183431e25dc5265de77148f2669abeb 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;