diff options
author | Antonio Fernandez <antonio.fernandez@aentos.es> | 2012-08-13 22:19:30 +0100 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2012-11-14 13:52:41 +0100 |
commit | a881d31f81d2195ae475d8c26ecff295d29c54de (patch) | |
tree | be8c4fb7a213052f0ddbfe8287da672d1117a4ac /vcl/unx/gtk | |
parent | 2b91cea7a2887d53a742c2f52dbcebd79fc0bd3c (diff) |
All menu labels are now displayed. There are some issues with repeated labels.
Change-Id: I1b92b91f34003f20aaa56558c1c0e231d1de6f94
Diffstat (limited to 'vcl/unx/gtk')
-rw-r--r-- | vcl/unx/gtk/window/gtksalmenu.cxx | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/vcl/unx/gtk/window/gtksalmenu.cxx b/vcl/unx/gtk/window/gtksalmenu.cxx index c0a69c108b64..163564afd0a6 100644 --- a/vcl/unx/gtk/window/gtksalmenu.cxx +++ b/vcl/unx/gtk/window/gtksalmenu.cxx @@ -451,20 +451,32 @@ bool GtkSalMenu::ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRe return TRUE; } +void updateNativeMenu( GtkSalMenu* pMenu ) { + if ( pMenu ) { + for (int i=0; i < pMenu->maItems.size(); i++) { + GtkSalMenuItem* pSalMenuItem = pMenu->maItems[ i ]; + String aText = pSalMenuItem->mpVCLMenu->GetItemText( pSalMenuItem->mnId ); + + // Force updating of native menu labels. + pMenu->SetItemText( i, pSalMenuItem, aText ); + + if ( pSalMenuItem->mpSubMenu && pSalMenuItem->mpSubMenu->mpVCLMenu ) { + pSalMenuItem->mpSubMenu->mpVCLMenu->Activate(); + updateNativeMenu( pSalMenuItem->mpSubMenu ); + } + } + } +} void GtkSalMenu::Freeze() { - cout << __FUNCTION__ << endl; - GLOActionGroup *mpActionGroup = g_lo_action_group_new(); + updateNativeMenu( this ); -// GMenuModel *pMenuModel = generateMenuModelAndActions( this, mpActionGroup ); + GLOActionGroup *mpActionGroup = g_lo_action_group_new(); generateActions( this, mpActionGroup ); -// this->publishMenu( mpMenuModel, G_ACTION_GROUP( mpActionGroup ) ); - // Menubar would have one section only. this->publishMenu( mpMenuModel, G_ACTION_GROUP( mpActionGroup ) ); -// g_object_unref( pMenuModel ); } // ======================================================================= |