add basic concept of an "owner" for an action group, to allow later grouping
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 10 Dec 2018 23:40:31 +0000 (18:40 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 10 Dec 2018 23:40:31 +0000 (18:40 -0500)
libs/gtkmm2ext/actions.cc
libs/gtkmm2ext/bindings.cc
libs/gtkmm2ext/gtkmm2ext/actions.h

index edf092d909a0b4a4b800f1ff2bcf6abc05a58968..00d85d35c6cd4c2bf51cccce3c08d624808bf26c 100644 (file)
@@ -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
index 49f890029ff3329298fea21d80e9932d707b51da..ce32cd725d19ed89043c2b42fae07b66fb8a65b7 100644 (file)
@@ -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;
                }
        }
index 6311a98631396e36acefe3557104a4efd4cdb67e..620d6c82d0296e505d2fef4a2100311ec55d18ce 100644 (file)
@@ -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,