From 11139cd4da6045235e91b6c1ecc479cbbc46a39a Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 1 Jun 2024 12:16:21 +0200 Subject: [PATCH] Trying to fix problem of deleted top-level menus --- src/laybasic/laybasic/layAbstractMenu.cc | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/laybasic/laybasic/layAbstractMenu.cc b/src/laybasic/laybasic/layAbstractMenu.cc index c503a0e1b..ccd1facfe 100644 --- a/src/laybasic/laybasic/layAbstractMenu.cc +++ b/src/laybasic/laybasic/layAbstractMenu.cc @@ -1322,7 +1322,7 @@ AbstractMenu::build (QMenuBar *mbar, QToolBar *tbar) QMenu *menu = new QMenu (mp_dispatcher->menu_parent_widget ()); menu->setTitle (tl::to_qstring (c->action ()->get_title ())); - c->set_action (new Action (menu), true); + c->set_action (new Action (menu), false); // This case happens when we dynamically create menus. // MacOS does not like generating top-level menus dynamically, so @@ -1397,6 +1397,7 @@ AbstractMenu::build (QMenuBar *mbar, QToolBar *tbar) if (mbar && s_can_move_menu) { for (std::set >::iterator a = present_actions.begin (); a != present_actions.end (); ++a) { mbar->removeAction (a->second); + delete a->second; } } } @@ -1614,12 +1615,6 @@ AbstractMenu::insert_separator (const std::string &p, const std::string &name) void AbstractMenu::insert_menu (const std::string &p, const std::string &name, Action *action) { -#if defined(HAVE_QT) - if (! action->menu () && mp_dispatcher && mp_dispatcher->menu_parent_widget ()) { - action->set_menu (new QMenu (), true); - } -#endif - typedef std::vector::iterator > > path_type; tl::Extractor extr (p.c_str ()); path_type path = find_item (extr);