summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2018-12-10 18:40:31 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2018-12-10 18:40:31 -0500
commit1de181479fe2d695457d2a0e247fca105cc09209 (patch)
tree37013a3d6f13d35e9627d95a117a886c261aecc3 /libs/gtkmm2ext
parent4b0f0f913b5e2465c35810d1b5424af3852eca55 (diff)
add basic concept of an "owner" for an action group, to allow later grouping
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r--libs/gtkmm2ext/actions.cc5
-rw-r--r--libs/gtkmm2ext/bindings.cc1
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/actions.h2
3 files changed, 5 insertions, 3 deletions
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 <glibmm/miscutils.h>
#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<Action>();
}
@@ -331,7 +333,7 @@ ActionManager::get_radio_action (char const * group_name, char const * action_na
RefPtr<ActionGroup>
-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<ActionGroup> 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<Bindings*>::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<Gtk::ActionGroup> create_action_group (std::string const & group_name);
+ LIBGTKMM2EXT_API extern Glib::RefPtr<Gtk::ActionGroup> create_action_group (void * owner, std::string const & group_name);
LIBGTKMM2EXT_API extern Glib::RefPtr<Gtk::Action> register_action (Glib::RefPtr<Gtk::ActionGroup> group, const char* name, const char* label);
LIBGTKMM2EXT_API extern Glib::RefPtr<Gtk::Action> register_action (Glib::RefPtr<Gtk::ActionGroup> group,