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

Caolán McNamara caolanm at redhat.com
Thu Nov 3 09:46:17 UTC 2016


 vcl/unx/gtk3/gtk3gtkframe.cxx |   17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

New commits:
commit 69d79abb583fa20e7bc2d3a217f870ec750609be
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 3 09:41:54 2016 +0000

    Related: rhbz#1390607 our side of per-monitor fullscreen on wayland
    
    keep the move window to monitor code, so under X, gnome#773857 isn't
    a problem
    
    when gnome#772525 fix is available this presumably will then work under
    wayland
    
    Change-Id: I50cfe7ede8a4f1404c26d174ef3c5bb920eb5044

diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index d377f32..9c647cb 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -1809,7 +1809,7 @@ void GtkSalFrame::SetScreen( unsigned int nNewScreen, SetType eType, Rectangle *
 
     bool bSpanAllScreens = nNewScreen == (unsigned int)-1;
     m_bSpanMonitorsWhenFullscreen = bSpanAllScreens && getDisplay()->getSystem()->GetDisplayScreenCount() > 1;
-
+    gint nMonitor = -1;
     if (m_bSpanMonitorsWhenFullscreen)   //span all screens
     {
         pScreen = gtk_widget_get_screen( m_pWindow );
@@ -1820,7 +1820,6 @@ void GtkSalFrame::SetScreen( unsigned int nNewScreen, SetType eType, Rectangle *
     }
     else
     {
-        gint nMonitor;
         bool bSameMonitor = false;
 
         if (!bSpanAllScreens)
@@ -1906,7 +1905,19 @@ void GtkSalFrame::SetScreen( unsigned int nNewScreen, SetType eType, Rectangle *
         ? GDK_FULLSCREEN_ON_ALL_MONITORS : GDK_FULLSCREEN_ON_CURRENT_MONITOR );
 #endif
     if( eType == SetType::Fullscreen )
-        gtk_window_fullscreen( GTK_WINDOW( m_pWindow ) );
+    {
+        if (m_bSpanMonitorsWhenFullscreen)
+            gtk_window_fullscreen(GTK_WINDOW(m_pWindow));
+        else
+        {
+#if GTK_CHECK_VERSION(3,18,0)
+            gtk_window_fullscreen_on_monitor(GTK_WINDOW(m_pWindow), pScreen, nMonitor);
+#else
+            gtk_window_fullscreen(GTK_WINDOW(m_pWindow));
+#endif
+        }
+
+    }
     else if( eType == SetType::UnFullscreen )
         gtk_window_unfullscreen( GTK_WINDOW( m_pWindow ) );
 


More information about the Libreoffice-commits mailing list