[LyX/master] Fix status setting of DynamicMenuButton (#13332)

Juergen Spitzmueller <[email protected]> Thu, 18 Jun 2026 14:21:23 +0000
Newsgroups gmane.editors.lyx.cvs
Message-ID <[email protected]>
commit 8729529f0cb40f46feee83a04cece1d3c61b02d8
Author: Juergen Spitzmueller <[email protected]>
Date:   Thu Jun 18 16:20:41 2026 +0200

    Fix status setting of DynamicMenuButton (#13332)
---
 src/frontends/qt/GuiToolbar.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/frontends/qt/GuiToolbar.cpp b/src/frontends/qt/GuiToolbar.cpp
index fddd49f48e..36357e840d 100644
--- a/src/frontends/qt/GuiToolbar.cpp
+++ b/src/frontends/qt/GuiToolbar.cpp
@@ -338,6 +338,8 @@ public:
 	DocumentClassConstPtr text_class_;
 	///
 	InsetText const * inset_;
+	///
+	list<FuncRequest> func_requests_;
 };
 
 
@@ -421,7 +423,8 @@ void DynamicMenuButton::updateTriggered()
 		// were other kinds of menus.
 		setEnabled(!bv->buffer().isReadonly()
 			   && !m->isEmpty()
-			   && inset->insetAllowed(FLEX_CODE));
+			   && !d->func_requests_.empty()
+			   && lyx::getStatus(d->func_requests_.front()).enabled());
 	} else if (menutype == "textstyle-apply") {
 		m->clear();
 		setPopupMode(QToolButton::MenuButtonPopup);
@@ -497,6 +500,7 @@ void DynamicMenuButton::loadFlexInsets()
 {
 	QMenu * m = menu();
 	m->clear();
+	d->func_requests_.clear();
 	string const & menutype = tbitem_.name;
 	InsetLyXType ftype;
 	if (menutype == "dynamic-custom-insets")
@@ -523,6 +527,7 @@ void DynamicMenuButton::loadFlexInsets()
 		Action * act = 
 				new Action(func, getIcon(func, false), loc_item, loc_item, this);
 		m->addAction(act);
+		d->func_requests_.push_back(func);
 	}
 }
 
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs