File 0004-Don-t-crash-when-switching-to-full-screen-in-non-X11.patch of Package wxWidgets-3_0

From a6b14c2ed1b653a3b7d30911ca5bbab0f7b78b14 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Wed, 19 Nov 2014 13:29:23 +0000
Subject: [PATCH 4/5] Don't crash when switching to full screen in non
 X11-based wxGTK.

Only use internal X11 display if we're running in a such environment.

See #16688.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78160 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 src/gtk/toplevel.cpp | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp
index 511324a..62cfe1a 100644
--- a/src/gtk/toplevel.cpp
+++ b/src/gtk/toplevel.cpp
@@ -852,10 +852,19 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long)
 
     m_fsIsShowing = show;
 
+    wxX11FullScreenMethod method = wxX11_FS_WMSPEC;
+    Display* xdpy = NULL;
+    Window xroot = None;
+
 #ifdef GDK_WINDOWING_X11
-    Display* xdpy = GDK_DISPLAY_XDISPLAY(gtk_widget_get_display(m_widget));
-    Window xroot = GDK_WINDOW_XID(gtk_widget_get_root_window(m_widget));
-    wxX11FullScreenMethod method = wxGetFullScreenMethodX11(xdpy, (WXWindow)xroot);
+    GdkDisplay *display = gtk_widget_get_display(m_widget);
+
+    if (GDK_IS_X11_DISPLAY(display))
+    {
+        xdpy = GDK_DISPLAY_XDISPLAY(display);
+        xroot = GDK_WINDOW_XID(gtk_widget_get_root_window(m_widget));
+        method = wxGetFullScreenMethodX11(xdpy, (WXWindow)xroot);
+    }
 
     // NB: gtk_window_fullscreen() uses freedesktop.org's WMspec extensions
     //     to switch to fullscreen, which is not always available. We must
@@ -870,7 +879,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long)
             gtk_window_unfullscreen( GTK_WINDOW( m_widget ) );
     }
 #ifdef GDK_WINDOWING_X11
-    else
+    else if (xdpy != NULL)
     {
         GdkWindow* window = gtk_widget_get_window(m_widget);
         Window xid = GDK_WINDOW_XID(window);
-- 
2.7.0

openSUSE Build Service is sponsored by