Resolves: tdf#119688 under X full-screen doesn't work before gtk_widget_show
Change-Id: I3ba29a235c8c5807e79e83dd1eb65b99f1dfa9cf
Reviewed-on: https://gerrit.libreoffice.org/65476
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 091f4d2..5e47121 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -1935,26 +1935,6 @@
gdk_window_set_fullscreen_mode( widget_get_window(m_pWindow), m_bSpanMonitorsWhenFullscreen
? GDK_FULLSCREEN_ON_ALL_MONITORS : GDK_FULLSCREEN_ON_CURRENT_MONITOR );
GtkWidget* pMenuBarContainerWidget = m_pSalMenu ? m_pSalMenu->GetMenuBarContainerWidget() : nullptr;
if( eType == SetType::Fullscreen )
{
if (pMenuBarContainerWidget)
gtk_widget_hide(pMenuBarContainerWidget);
if (m_bSpanMonitorsWhenFullscreen)
gtk_window_fullscreen(GTK_WINDOW(m_pWindow));
else
{
gtk_window_fullscreen_on_monitor(GTK_WINDOW(m_pWindow), pScreen, nMonitor);
}
}
else if( eType == SetType::UnFullscreen )
{
if (pMenuBarContainerWidget)
gtk_widget_show(pMenuBarContainerWidget);
gtk_window_unfullscreen( GTK_WINDOW( m_pWindow ) );
}
if( eType == SetType::UnFullscreen &&
!(m_nStyle & SalFrameStyleFlags::SIZEABLE) )
gtk_window_set_resizable( GTK_WINDOW( m_pWindow ), FALSE );
@@ -1971,6 +1951,25 @@
if( bVisible )
Show( true );
GtkWidget* pMenuBarContainerWidget = m_pSalMenu ? m_pSalMenu->GetMenuBarContainerWidget() : nullptr;
if( eType == SetType::Fullscreen )
{
if (pMenuBarContainerWidget)
gtk_widget_hide(pMenuBarContainerWidget);
if (m_bSpanMonitorsWhenFullscreen)
gtk_window_fullscreen(GTK_WINDOW(m_pWindow));
else
{
gtk_window_fullscreen_on_monitor(GTK_WINDOW(m_pWindow), pScreen, nMonitor);
}
}
else if( eType == SetType::UnFullscreen )
{
if (pMenuBarContainerWidget)
gtk_widget_show(pMenuBarContainerWidget);
gtk_window_unfullscreen( GTK_WINDOW( m_pWindow ) );
}
}
void GtkSalFrame::SetScreenNumber( unsigned int nNewScreen )