[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - vcl/source
Jan-Marek Glogowski (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jun 30 17:43:12 UTC 2020
vcl/source/window/toolbox.cxx | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
New commits:
commit 62b4803b32963f9529e6380f14a5b7d4edb8c4ff
Author: Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Mon Jun 29 07:01:26 2020 +0200
Commit: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Tue Jun 30 19:42:40 2020 +0200
tdf#134054 toolbox: respect drop-down arrow rect
When centering the text and icon on the button, the code didn't
take the drop-down arrow rect width into account, resulting in an
overlapped arrow. This is especially visible, if the drop-down
is shown and the button is wrongly highlighted.
There is supposed to be some vertical mode, which I couldn't find
in the GUI, so this just adapts the width in horizontal mode.
Change-Id: I194780dc32db610041ad0ee45a425e1026c7c4e3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97358
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
(cherry picked from commit cb71b364fcc21bd7aa25cacb8c24a8cbc9eabd21)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97379
Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index 8ddb536f7bb4..543e1b507c50 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -2642,13 +2642,11 @@ void ToolBox::ImplDrawItem(vcl::RenderContext& rRenderContext, ImplToolItems::si
long nBtnWidth = aBtnSize.Width()-SMALLBUTTON_HSIZE;
long nBtnHeight = aBtnSize.Height()-SMALLBUTTON_VSIZE;
Size aImageSize;
- Size aTxtSize;
- if ( bText )
- {
- aTxtSize.setWidth( GetCtrlTextWidth( pItem->maText ) );
- aTxtSize.setHeight( GetTextHeight() );
- }
+ const bool bDropDown = (pItem->mnBits & ToolBoxItemBits::DROPDOWN) == ToolBoxItemBits::DROPDOWN;
+ tools::Rectangle aDropDownRect;
+ if (bDropDown)
+ aDropDownRect = pItem->GetDropDownRect(mbHorz);
if ( bImage )
{
@@ -2678,7 +2676,7 @@ void ToolBox::ImplDrawItem(vcl::RenderContext& rRenderContext, ImplToolItems::si
}
else
{
- nImageOffX += (nBtnWidth-aImageSize.Width())/2;
+ nImageOffX += (nBtnWidth-(bDropDown ? aDropDownRect.getWidth() : 0)+SMALLBUTTON_OFF_NORMAL_X-aImageSize.Width())/2;
if ( meTextPosition == ToolBoxTextPosition::Right )
nImageOffY += (nBtnHeight-aImageSize.Height())/2;
}
@@ -2703,6 +2701,7 @@ void ToolBox::ImplDrawItem(vcl::RenderContext& rRenderContext, ImplToolItems::si
bool bRotate = false;
if ( bText )
{
+ const Size aTxtSize(GetCtrlTextWidth(pItem->maText), GetTextHeight());
long nTextOffX = nOffX;
long nTextOffY = nOffY;
@@ -2740,7 +2739,7 @@ void ToolBox::ImplDrawItem(vcl::RenderContext& rRenderContext, ImplToolItems::si
else
{
// center horizontally
- nTextOffX += (nBtnWidth-aTxtSize.Width() - TB_IMAGETEXTOFFSET)/2;
+ nTextOffX += (nBtnWidth-(bDropDown ? aDropDownRect.getWidth() : 0)+SMALLBUTTON_OFF_NORMAL_X-aTxtSize.Width() - TB_IMAGETEXTOFFSET)/2;
// set vertical position
nTextOffY += nBtnHeight - aTxtSize.Height();
}
@@ -2766,9 +2765,8 @@ void ToolBox::ImplDrawItem(vcl::RenderContext& rRenderContext, ImplToolItems::si
}
// paint optional drop down arrow
- if ( pItem->mnBits & ToolBoxItemBits::DROPDOWN )
+ if (bDropDown)
{
- tools::Rectangle aDropDownRect( pItem->GetDropDownRect( mbHorz ) );
bool bSetColor = true;
if ( !pItem->mbEnabled || !IsEnabled() )
{
More information about the Libreoffice-commits
mailing list