summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-05-31 10:00:38 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-05-31 10:26:53 +0100
commitba4e50c856e5279c05b90297660b396868a6d815 (patch)
tree8e6e57fcfa302fe335bafb4d14fbbc7432bb1247
parent9d8184b34e9e4c53f93e4d44ac53590e9231c520 (diff)
Related: tdf#92695 gtk3 only activate/deactive submenus, not the toplevel
Change-Id: I5ce7ae39e7db62551733a005f3163ebfbb027af6
-rw-r--r--vcl/inc/unx/gtk/gtksalmenu.hxx2
-rw-r--r--vcl/unx/gtk/gtksalmenu.cxx6
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)