From e6e85ab3b34ccf69399db19caa8160814a2d72ca Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Thu, 23 Oct 2025 21:49:24 +0200 Subject: [PATCH] FIxing issue #2194 (can't attach key binding to 'forward'/'backward') --- src/laybasic/laybasic/layAbstractMenu.h | 5 +++++ src/laybasic/laybasic/layPlugin.cc | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/laybasic/laybasic/layAbstractMenu.h b/src/laybasic/laybasic/layAbstractMenu.h index 59a16cd6c..f66334425 100644 --- a/src/laybasic/laybasic/layAbstractMenu.h +++ b/src/laybasic/laybasic/layAbstractMenu.h @@ -621,6 +621,11 @@ struct LAYBASIC_PUBLIC AbstractMenuItem return m_primary; } + void set_primary (bool p) + { + m_primary = p; + } + std::list children; private: diff --git a/src/laybasic/laybasic/layPlugin.cc b/src/laybasic/laybasic/layPlugin.cc index 842351536..48a29f9cd 100644 --- a/src/laybasic/laybasic/layPlugin.cc +++ b/src/laybasic/laybasic/layPlugin.cc @@ -197,6 +197,12 @@ PluginDeclaration::init_menu (lay::Dispatcher *dispatcher) if (! m->copy_from.empty ()) { + // As a general strategy for now we take primary ownership from the copy source as pass it to + // the copy. This is important for "next/prev_display_state" as the first registry is @toolbar + // (which is not accessible by Setup menu) and the second one is "zoom_menu" which should be + // the primary one. For later, we may want to make this configurable (move/leave primary flag). + menu.find_item_exact (m->copy_from)->set_primary (false); + menu.insert_item (m->insert_pos, m->menu_name, menu.action (m->copy_from)); } else if (m->separator) {