summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksei Nikiforov <darktemplar@basealt.ru>2019-01-10 15:54:56 +0300
committerKatarina Behrens <Katarina.Behrens@cib.de>2019-01-14 12:33:29 +0100
commit561f0d496666a3ad481eefc24cf94b44ce10bdad (patch)
treef289ca211997a50e440a2c79bbb20731c7126c6d
parenttdf#122384 Added isPrinter support to WinSalGraphicsImpl::drawPolyLine (diff)
downloadcore-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.hxx2
-rw-r--r--vcl/qt5/Qt5Menu.cxx13
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());
}
}