vcl/inc/unx/gtk/gtksalmenu.hxx | 2 +- vcl/source/window/toolbox.cxx | 15 +++++++-------- vcl/unx/gtk/gtksalmenu.cxx | 6 +++--- 3 files changed, 11 insertions(+), 12 deletions(-)
New commits: commit c845c7bf597caa11b1617ab71029c499819028bc Author: Caolán McNamara <caol...@redhat.com> Date: Tue May 31 10:11:01 2016 +0100 Resolves: tdf#92695 protect both branches against missing ToolItem Change-Id: Ide54fddf7b217e65a405bd80853d5302a419f046 (cherry picked from commit ab0dc9524a36a394e97df9499bf1f5e4b94cfdca) diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx index 4a5116c..379bca3 100644 --- a/vcl/source/window/toolbox.cxx +++ b/vcl/source/window/toolbox.cxx @@ -5010,7 +5010,7 @@ bool ToolBox::ImplActivateItem( vcl::KeyCode aKeyCode ) else { mnDownItemId = mnCurItemId = mnHighItemId; - if ( pToolItem->mnBits & ToolBoxItemBits::AUTOCHECK ) + if (pToolItem && (pToolItem->mnBits & ToolBoxItemBits::AUTOCHECK)) { if ( pToolItem->mnBits & ToolBoxItemBits::RADIOCHECK ) { commit df668868917d1dac11d49f1f650c43666fadea54 Author: Caolán McNamara <caol...@redhat.com> Date: Tue May 31 10:07:10 2016 +0100 Related: tdf#92695 we already have ImplGetItem from mnHighItemId here no logic change intended Change-Id: Ia53a21db56c857e1274c60f846fc955fef9e3dfb (cherry picked from commit c380f0fc125f50ad8efca2ce032d3d2a67d78f0a) diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx index 8cb37f2..4a5116c 100644 --- a/vcl/source/window/toolbox.cxx +++ b/vcl/source/window/toolbox.cxx @@ -5010,20 +5010,19 @@ bool ToolBox::ImplActivateItem( vcl::KeyCode aKeyCode ) else { mnDownItemId = mnCurItemId = mnHighItemId; - ImplToolItem* pItem = ImplGetItem( mnHighItemId ); - if ( pItem->mnBits & ToolBoxItemBits::AUTOCHECK ) + if ( pToolItem->mnBits & ToolBoxItemBits::AUTOCHECK ) { - if ( pItem->mnBits & ToolBoxItemBits::RADIOCHECK ) + if ( pToolItem->mnBits & ToolBoxItemBits::RADIOCHECK ) { - if ( pItem->meState != TRISTATE_TRUE ) - SetItemState( pItem->mnId, TRISTATE_TRUE ); + if ( pToolItem->meState != TRISTATE_TRUE ) + SetItemState( pToolItem->mnId, TRISTATE_TRUE ); } else { - if ( pItem->meState != TRISTATE_TRUE ) - pItem->meState = TRISTATE_TRUE; + if ( pToolItem->meState != TRISTATE_TRUE ) + pToolItem->meState = TRISTATE_TRUE; else - pItem->meState = TRISTATE_FALSE; + pToolItem->meState = TRISTATE_FALSE; } } mnMouseModifier = aKeyCode.GetModifier(); commit dbf99bb2e092ec5dca6b405e15c507f66ad0bc6d Author: Caolán McNamara <caol...@redhat.com> Date: Tue May 31 10:00:38 2016 +0100 Related: tdf#92695 gtk3 only activate/deactive submenus, not the toplevel Change-Id: I5ce7ae39e7db62551733a005f3163ebfbb027af6 (cherry picked from commit ba4e50c856e5279c05b90297660b396868a6d815) diff --git a/vcl/inc/unx/gtk/gtksalmenu.hxx b/vcl/inc/unx/gtk/gtksalmenu.hxx index 1a5cd0a..31622fa 100644 --- a/vcl/inc/unx/gtk/gtksalmenu.hxx +++ b/vcl/inc/unx/gtk/gtksalmenu.hxx @@ -111,7 +111,7 @@ public: bool PrepUpdate(); virtual void Update() override; // Update this menu only. // Update full menu hierarchy from this menu. - void UpdateFull () { ActivateAllSubmenus(mpVCLMenu); } + void UpdateFull () { ActivateAllSubmenus(mpVCLMenu); Update(); } GtkSalMenu* GetTopLevel(); void SetNeedsUpdate(); diff --git a/vcl/unx/gtk/gtksalmenu.cxx b/vcl/unx/gtk/gtksalmenu.cxx index 03b9b70..6a8d52a 100644 --- a/vcl/unx/gtk/gtksalmenu.cxx +++ b/vcl/unx/gtk/gtksalmenu.cxx @@ -991,16 +991,16 @@ void GtkSalMenu::DispatchCommand(const gchar *pCommand) void GtkSalMenu::ActivateAllSubmenus(Menu* pMenuBar) { - pMenuBar->HandleMenuActivateEvent(mpVCLMenu); for (GtkSalMenuItem* pSalItem : maItems) { if ( pSalItem->mpSubMenu != nullptr ) { + pMenuBar->HandleMenuActivateEvent(pSalItem->mpSubMenu->GetMenu()); pSalItem->mpSubMenu->ActivateAllSubmenus(pMenuBar); + pSalItem->mpSubMenu->Update(); + pMenuBar->HandleMenuDeActivateEvent(pSalItem->mpSubMenu->GetMenu()); } } - Update(); - pMenuBar->HandleMenuDeActivateEvent(mpVCLMenu); } void GtkSalMenu::Activate(const gchar* pCommand)
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits