diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-02-24 13:02:40 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-02-24 13:05:17 +0000 |
commit | 13917e0755bb864f22d0cf75a43854acbdb1eaec (patch) | |
tree | b1b83b9b0d2ae5fe2140496165f5fd03bc980479 /vcl/source/window/toolbox2.cxx | |
parent | 736f265c46130ce905be75f2141424486d52c8a9 (diff) |
mark checkable toolbox menu entries as checkable
e.g. the toplevel toolbars put excess entries in
menus. If the entry is not marked as checkable then
a native gtk menu entry will appear to be stateless
when it actually does have a toggle state
Change-Id: I7168b44d59fd64dfe264ed8ca26355252d697251
Diffstat (limited to 'vcl/source/window/toolbox2.cxx')
-rw-r--r-- | vcl/source/window/toolbox2.cxx | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx index b2c75649f717..d2364c18644d 100644 --- a/vcl/source/window/toolbox2.cxx +++ b/vcl/source/window/toolbox2.cxx @@ -1790,6 +1790,20 @@ bool ToolBox::ImplHasClippedItems() return false; } +namespace +{ + MenuItemBits ConvertBitsFromToolBoxToMenu(ToolBoxItemBits nToolItemBits) + { + MenuItemBits nMenuItemBits = MenuItemBits::NONE; + if ((nToolItemBits & ToolBoxItemBits::CHECKABLE) || + (nToolItemBits & ToolBoxItemBits::DROPDOWN)) + { + nMenuItemBits |= MenuItemBits::CHECKABLE; + } + return nMenuItemBits; + } +} + void ToolBox::UpdateCustomMenu() { // fill clipped items into menu @@ -1825,7 +1839,8 @@ void ToolBox::UpdateCustomMenu() if( it->IsClipped() ) { sal_uInt16 id = it->mnId + TOOLBOX_MENUITEM_START; - pMenu->InsertItem( id, it->maText, it->maImageOriginal, MenuItemBits::NONE, OString()); + MenuItemBits nMenuItemBits = ConvertBitsFromToolBoxToMenu(it->mnBits); + pMenu->InsertItem( id, it->maText, it->maImageOriginal, nMenuItemBits, OString()); pMenu->SetItemCommand( id, it->maCommandStr ); pMenu->EnableItem( id, it->mbEnabled ); pMenu->CheckItem ( id, it->meState == TRISTATE_TRUE ); @@ -1842,7 +1857,8 @@ void ToolBox::UpdateCustomMenu() if( it->IsItemHidden() ) { sal_uInt16 id = it->mnId + TOOLBOX_MENUITEM_START; - pMenu->InsertItem( id, it->maText, it->maImageOriginal, MenuItemBits::NONE, OString() ); + MenuItemBits nMenuItemBits = ConvertBitsFromToolBoxToMenu(it->mnBits); + pMenu->InsertItem( id, it->maText, it->maImageOriginal, nMenuItemBits, OString() ); pMenu->SetItemCommand( id, it->maCommandStr ); pMenu->EnableItem( id, it->mbEnabled ); pMenu->CheckItem( id, it->meState == TRISTATE_TRUE ); |