diff options
author | Armin Le Grand (Allotropia) <armin.le.grand@me.com> | 2021-03-17 18:31:59 +0100 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2021-03-31 00:24:35 +0200 |
commit | f6fc4c2630a4bc0ca6296481994afc868a581775 (patch) | |
tree | c57b59a7f37ad0d34725807ff76221921212d9ba | |
parent | 803c5810f368a026f7db621d3c88ef35980057eb (diff) |
tdf#131031 take MenuBar into account on size change
in GtkSalFrame::SetPosSize when setting local vars for
maGeometry.nWidth/nHeight the implicitely existing gtk
native menu bar has to be taken into account. This can
be done by extracting the values for it and re-apply
to the new values.
Change-Id: Ic0e76ecfd49fab7dbf330f3e26ab4a6ad3267b35
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112654
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
(cherry picked from commit cc1690b9752b3fef3d541de0d26b7c7681615767)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112728
Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkframe.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index 786aa40474d6..09ffd31a5255 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -1479,8 +1479,13 @@ void GtkSalFrame::SetPosSize( long nX, long nY, long nWidth, long nHeight, sal_u { m_bDefaultSize = false; + // tdf#131031 Just setting maGeometry.nWidth/nHeight will delete + // the evtl. implicitely existing space at top for the gtk native MenuBar, + // will make the Window too big and the StatusBar at the bottom vanish + // and thus breaks the fix in tdf#130841. + const int nImplicitMenuBarHeight(m_pSalMenu ? m_pSalMenu->GetMenuBarHeight() : 0); maGeometry.nWidth = nWidth; - maGeometry.nHeight = nHeight; + maGeometry.nHeight = nHeight - nImplicitMenuBarHeight; if( isChild( false ) ) widget_set_size_request(nWidth, nHeight); |