diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-05-31 10:00:38 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-05-31 10:26:53 +0100 |
commit | ba4e50c856e5279c05b90297660b396868a6d815 (patch) | |
tree | 8e6e57fcfa302fe335bafb4d14fbbc7432bb1247 | |
parent | 9d8184b34e9e4c53f93e4d44ac53590e9231c520 (diff) |
Related: tdf#92695 gtk3 only activate/deactive submenus, not the toplevel
Change-Id: I5ce7ae39e7db62551733a005f3163ebfbb027af6
-rw-r--r-- | vcl/inc/unx/gtk/gtksalmenu.hxx | 2 | ||||
-rw-r--r-- | vcl/unx/gtk/gtksalmenu.cxx | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/vcl/inc/unx/gtk/gtksalmenu.hxx b/vcl/inc/unx/gtk/gtksalmenu.hxx index 1a5cd0ad1fcc..31622fa11cbc 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 03b9b7067687..6a8d52ac4584 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) |