Resolves: rhbz#920697 presentation not always full-screen

This commit is contained in:
Caolán McNamara 2013-03-12 16:42:48 +00:00
parent 3eaaae11a7
commit 65ac10476f
2 changed files with 94 additions and 1 deletions

View File

@ -0,0 +1,88 @@
From b1beaf3f7a7d332890ea3877b657cd014562cf33 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 12 Mar 2013 16:33:01 +0000
Subject: [PATCH] Resolves: rhbz#920697, #i110881#, rhbz#623191 presentation
not fullscreen
Undecorated windows don't go full-screen correctly. Lets try and avoid using
gtk_window_set_decorated and rely on gtk_window_set_role to get the WM to do
the right thing.
Change-Id: I0f9e9c26372ac50398fa69c404013e3035ed637b
---
vcl/unx/gtk/window/gtkframe.cxx | 32 --------------------------------
1 file changed, 32 deletions(-)
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index 07f6fb3..9433ae5 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -1091,7 +1091,6 @@ void GtkSalFrame::Init( SalFrame* pParent, sal_uLong nStyle )
if( bDecoHandling )
{
- bool bNoDecor = ! (nStyle & (SAL_FRAME_STYLE_MOVEABLE | SAL_FRAME_STYLE_SIZEABLE | SAL_FRAME_STYLE_CLOSEABLE ) );
GdkWindowTypeHint eType = GDK_WINDOW_TYPE_HINT_NORMAL;
if( (nStyle & SAL_FRAME_STYLE_DIALOG) && m_pParent != 0 )
eType = GDK_WINDOW_TYPE_HINT_DIALOG;
@@ -1109,7 +1108,6 @@ void GtkSalFrame::Init( SalFrame* pParent, sal_uLong nStyle )
{
eType = GDK_WINDOW_TYPE_HINT_TOOLBAR;
lcl_set_accept_focus( GTK_WINDOW(m_pWindow), sal_False, true );
- bNoDecor = true;
}
else if( (nStyle & SAL_FRAME_STYLE_FLOAT_FOCUSABLE) )
{
@@ -1124,8 +1122,6 @@ void GtkSalFrame::Init( SalFrame* pParent, sal_uLong nStyle )
}
#endif
gtk_window_set_type_hint( GTK_WINDOW(m_pWindow), eType );
- if( bNoDecor )
- gtk_window_set_decorated( GTK_WINDOW(m_pWindow), FALSE );
gtk_window_set_gravity( GTK_WINDOW(m_pWindow), GDK_GRAVITY_STATIC );
if( m_pParent && ! (m_pParent->m_nStyle & SAL_FRAME_STYLE_PLUG) )
gtk_window_set_transient_for( GTK_WINDOW(m_pWindow), GTK_WINDOW(m_pParent->m_pWindow) );
@@ -3331,40 +3327,12 @@ gboolean GtkSalFrame::signalFocus( GtkWidget*, GdkEventFocus* pEvent, gpointer f
return sal_False;
}
-extern "C" {
-gboolean implDelayedFullScreenHdl (void *pWindow)
-{
- SolarMutexGuard aGuard;
-
- /* #i110881# workaround a gtk issue (see
- https://bugzilla.redhat.com/show_bug.cgi?id=623191#c8)
- gtk_window_fullscreen can fail due to a race condition,
- request an additional status change to fullscreen to be
- safe: if the window is now mapped ... and wasn't
- previously, ie. the race; we'll end up doing a nice
- gdk_wmspec_change_state here anyway.
- */
- if( pWindow )
- {
- gdk_window_fullscreen( GDK_WINDOW( pWindow ) );
- g_object_unref( pWindow );
- }
-
- return FALSE;
-}
-}
-
gboolean GtkSalFrame::signalMap( GtkWidget *pWidget, GdkEvent*, gpointer frame )
{
GtkSalFrame* pThis = (GtkSalFrame*)frame;
GTK_YIELD_GRAB();
- if( pThis->m_bFullscreen )
- g_idle_add_full( G_PRIORITY_HIGH, implDelayedFullScreenHdl,
- g_object_ref( widget_get_window( pThis->m_pWindow ) ),
- NULL );
-
bool bSetFocus = pThis->m_bSetFocusOnMap;
pThis->m_bSetFocusOnMap = false;
--
1.8.1.2

View File

@ -47,7 +47,7 @@ Summary: Free Software Productivity Suite
Name: libreoffice
Epoch: 1
Version: %{libo_version}.2
Release: 2%{?libo_prerelease}%{?dist}
Release: 3%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0
Group: Applications/Productivity
URL: http://www.documentfoundation.org/develop
@ -257,6 +257,7 @@ Patch23: 0001-Related-rhbz-902884-check-for-GetSelectedMasterPage-.patch
Patch24: 0001-Resolves-fdo-61241-force-area-page-to-size-itself-fo.patch
Patch25: 0001-Resolves-fdo-61656-use-order-and-orientation-combobo.patch
Patch26: 0001-Resolves-fdo-56031-RSID-attr-changes-drop-content-ch.patch
Patch27: 0001-Resolves-rhbz-920697-i110881-rhbz-623191-presentatio.patch
%define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice
@ -1006,6 +1007,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc
%patch24 -p1 -b .fdo-61241-force-area-page-to-size-itself-fo.patch
%patch25 -p1 -b .fdo-61656-use-order-and-orientation-combobo.patch
%patch26 -p1 -b .fdo-56031-RSID-attr-changes-drop-content-ch.patch
%patch27 -p1 -b .rhbz-920697-i110881-rhbz-623191-presentatio.patch
# TODO: check this
# these are horribly incomplete--empty translations and copied english
@ -2073,6 +2075,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%endif
%changelog
* Tue Mar 12 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.0.1.2-3
- Resolves: rhbz#920697 presentation not always full-screen
* Thu Mar 07 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.0.1.2-2
- Related: rhbz#902884 check for NULL GetSelectedMasterPage
- Resolves: fdo#61241 force area page to size itself