From 1de181479fe2d695457d2a0e247fca105cc09209 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 10 Dec 2018 18:40:31 -0500 Subject: add basic concept of an "owner" for an action group, to allow later grouping --- libs/gtkmm2ext/actions.cc | 5 ++++- libs/gtkmm2ext/bindings.cc | 1 - libs/gtkmm2ext/gtkmm2ext/actions.h | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) (limited to 'libs') diff --git a/libs/gtkmm2ext/actions.cc b/libs/gtkmm2ext/actions.cc index edf092d909..00d85d35c6 100644 --- a/libs/gtkmm2ext/actions.cc +++ b/libs/gtkmm2ext/actions.cc @@ -37,6 +37,7 @@ #include #include "pbd/error.h" +#include "pbd/stacktrace.h" #include "gtkmm2ext/actions.h" #include "gtkmm2ext/utils.h" @@ -302,6 +303,7 @@ ActionManager::get_action (char const * group_name, char const * action_name, bo } cerr << "Failed to find action (2): [" << fullpath << ']' << endl; + PBD::stacktrace (std::cerr, 20); return RefPtr(); } @@ -331,7 +333,7 @@ ActionManager::get_radio_action (char const * group_name, char const * action_na RefPtr -ActionManager::create_action_group (string const & name) +ActionManager::create_action_group (void * owner, string const & name) { for (ActionGroups::iterator g = groups.begin(); g != groups.end(); ++g) { if ((*g)->get_name () == name) { @@ -341,6 +343,7 @@ ActionManager::create_action_group (string const & name) RefPtr g = ActionGroup::create (name); + g->set_data (X_("owner"), owner); groups.push_back (g); /* this is one of the places where our own Action management code diff --git a/libs/gtkmm2ext/bindings.cc b/libs/gtkmm2ext/bindings.cc index 49f890029f..ce32cd725d 100644 --- a/libs/gtkmm2ext/bindings.cc +++ b/libs/gtkmm2ext/bindings.cc @@ -1045,7 +1045,6 @@ Bindings::get_bindings (string const& name) { for (list::iterator b = bindings.begin(); b != bindings.end(); b++) { if ((*b)->name() == name) { - (*b)->reassociate (); // XXX important side-effects, wierd to call it here return *b; } } diff --git a/libs/gtkmm2ext/gtkmm2ext/actions.h b/libs/gtkmm2ext/gtkmm2ext/actions.h index 6311a98631..620d6c82d0 100644 --- a/libs/gtkmm2ext/gtkmm2ext/actions.h +++ b/libs/gtkmm2ext/gtkmm2ext/actions.h @@ -70,7 +70,7 @@ namespace ActionManager { LIBGTKMM2EXT_API extern void enable_active_actions (); LIBGTKMM2EXT_API extern void disable_active_actions (); - LIBGTKMM2EXT_API extern Glib::RefPtr create_action_group (std::string const & group_name); + LIBGTKMM2EXT_API extern Glib::RefPtr create_action_group (void * owner, std::string const & group_name); LIBGTKMM2EXT_API extern Glib::RefPtr register_action (Glib::RefPtr group, const char* name, const char* label); LIBGTKMM2EXT_API extern Glib::RefPtr register_action (Glib::RefPtr group, -- cgit v1.2.3