diff options
author | Aleksei Nikiforov <darktemplar@basealt.ru> | 2019-01-10 15:54:56 +0300 |
---|---|---|
committer | Katarina Behrens <Katarina.Behrens@cib.de> | 2019-01-14 12:33:29 +0100 |
commit | 561f0d496666a3ad481eefc24cf94b44ce10bdad (patch) | |
tree | f289ca211997a50e440a2c79bbb20731c7126c6d | |
parent | tdf#122384 Added isPrinter support to WinSalGraphicsImpl::drawPolyLine (diff) | |
download | core-561f0d496666a3ad481eefc24cf94b44ce10bdad.tar.gz core-561f0d496666a3ad481eefc24cf94b44ce10bdad.zip |
tdf#122253 KDE5: Correct parent menu before it's used
Also correct action group of menu
Change-Id: Ie7eddd3cdc9fa1c36fdeaa1e96eb5d50d7126c09
Reviewed-on: https://gerrit.libreoffice.org/66146
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
(cherry picked from commit c278857137ea0e9e25613d5f6bf8ddaf1336fbcc)
Reviewed-on: https://gerrit.libreoffice.org/66173
Reviewed-by: Aleksei Nikiforov <darktemplar@basealt.ru>
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
(cherry picked from commit b6704c14ce2241e76904e494125a520814ec5021)
Reviewed-on: https://gerrit.libreoffice.org/66290
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
-rw-r--r-- | vcl/inc/qt5/Qt5Menu.hxx | 2 | ||||
-rw-r--r-- | vcl/qt5/Qt5Menu.cxx | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/vcl/inc/qt5/Qt5Menu.hxx b/vcl/inc/qt5/Qt5Menu.hxx index 9f7469fa3f78..b3b06bfeabac 100644 --- a/vcl/inc/qt5/Qt5Menu.hxx +++ b/vcl/inc/qt5/Qt5Menu.hxx @@ -33,7 +33,7 @@ private: QMenu* mpQMenu; QActionGroup* mpQActionGroup; - void DoFullMenuUpdate(Menu* pMenuBar, QMenu* pParentMenu = nullptr); + void DoFullMenuUpdate(Menu* pMenuBar); static void NativeItemText(OUString& rItemText); QMenu* InsertMenuItem(Qt5MenuItem* pSalMenuItem, unsigned nPos); diff --git a/vcl/qt5/Qt5Menu.cxx b/vcl/qt5/Qt5Menu.cxx index 130d7c583f58..d92c0c0e3a8b 100644 --- a/vcl/qt5/Qt5Menu.cxx +++ b/vcl/qt5/Qt5Menu.cxx @@ -219,18 +219,17 @@ void Qt5Menu::SetFrame(const SalFrame* pFrame) if (pMainWindow) { mpQMenuBar = pMainWindow->menuBar(); + mpQMenu = nullptr; + mpQActionGroup = nullptr; DoFullMenuUpdate(mpVCLMenu); } } -void Qt5Menu::DoFullMenuUpdate(Menu* pMenuBar, QMenu* pParentMenu) +void Qt5Menu::DoFullMenuUpdate(Menu* pMenuBar) { - mpQMenu = pParentMenu; - if (mbMenuBar && mpQMenuBar) mpQMenuBar->clear(); - mpQActionGroup = nullptr; for (sal_Int32 nItem = 0; nItem < static_cast<sal_Int32>(GetItemCount()); nItem++) { @@ -240,8 +239,12 @@ void Qt5Menu::DoFullMenuUpdate(Menu* pMenuBar, QMenu* pParentMenu) if (pSalMenuItem->mpSubMenu != nullptr) { + // correct parent menu and action group before calling HandleMenuActivateEvent + pSalMenuItem->mpSubMenu->mpQMenu = pQMenu; + pSalMenuItem->mpSubMenu->mpQActionGroup = nullptr; + pMenuBar->HandleMenuActivateEvent(pSalMenuItem->mpSubMenu->GetMenu()); - pSalMenuItem->mpSubMenu->DoFullMenuUpdate(pMenuBar, pQMenu); + pSalMenuItem->mpSubMenu->DoFullMenuUpdate(pMenuBar); pMenuBar->HandleMenuDeActivateEvent(pSalMenuItem->mpSubMenu->GetMenu()); } } |