[Libreoffice-commits] core.git: vcl/unx

Caolán McNamara caolanm at redhat.com
Thu May 19 08:55:25 UTC 2016


 vcl/unx/gtk3/gtk3gtkframe.cxx  |   12 ++++++++++++
 vcl/unx/gtk3/gtk3gtkobject.cxx |   12 ++++++++++++
 2 files changed, 24 insertions(+)

New commits:
commit c70a5937e3a2057886c01bc78ac5a6b42e8c702d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 19 09:53:21 2016 +0100

    gtk3: for x11 case set Display and Visual so opengl slide effects can work
    
    Change-Id: Ib354a3bc0e2069117717068d7cfc02623765a6fa

diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 36754f9..7eaa53c 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -1088,6 +1088,18 @@ void GtkSalFrame::InitCommon()
     m_aSystemData.pAppContext   = nullptr;
     m_aSystemData.pShellWidget  = m_aSystemData.pWidget;
     m_aSystemData.pToolkit      = "gtk3";
+    GdkScreen* pScreen = gtk_window_get_screen(GTK_WINDOW(m_pWindow));
+    GdkVisual* pVisual = gdk_screen_get_system_visual(pScreen);
+    m_aSystemData.nDepth = gdk_visual_get_depth(pVisual);
+
+#if defined(GDK_WINDOWING_X11)
+    GdkDisplay *pDisplay = getGdkDisplay();
+    if (GDK_IS_X11_DISPLAY(pDisplay))
+    {
+        m_aSystemData.pDisplay = gdk_x11_display_get_xdisplay(pDisplay);
+        m_aSystemData.pVisual = gdk_x11_visual_get_xvisual(pVisual);
+    }
+#endif
 
     m_bGraphics = false;
     m_pGraphics = nullptr;
diff --git a/vcl/unx/gtk3/gtk3gtkobject.cxx b/vcl/unx/gtk3/gtk3gtkobject.cxx
index bf3fbbe..1c51b11 100644
--- a/vcl/unx/gtk3/gtk3gtkobject.cxx
+++ b/vcl/unx/gtk3/gtk3gtkobject.cxx
@@ -55,6 +55,18 @@ GtkSalObject::GtkSalObject( GtkSalFrame* pParent, bool bShow )
         m_aSystemData.pAppContext   = nullptr;
         m_aSystemData.pShellWidget  = GTK_WIDGET(pParent->getWindow());
         m_aSystemData.pToolkit      = "gtk3";
+        GdkScreen* pScreen = gtk_window_get_screen(GTK_WINDOW(pParent->getWindow()));
+        GdkVisual* pVisual = gdk_screen_get_system_visual(pScreen);
+        m_aSystemData.nDepth = gdk_visual_get_depth(pVisual);
+
+#if defined(GDK_WINDOWING_X11)
+        GdkDisplay *pDisplay = pParent->getGdkDisplay();
+        if (GDK_IS_X11_DISPLAY(pDisplay))
+        {
+            m_aSystemData.pDisplay = gdk_x11_display_get_xdisplay(pDisplay);
+            m_aSystemData.pVisual = gdk_x11_visual_get_xvisual(pVisual);
+        }
+#endif
 
         g_signal_connect( G_OBJECT(m_pSocket), "button-press-event", G_CALLBACK(signalButton), this );
         g_signal_connect( G_OBJECT(m_pSocket), "button-release-event", G_CALLBACK(signalButton), this );


More information about the Libreoffice-commits mailing list