diff --git a/libs/gtkmm2ext/bindings.cc b/libs/gtkmm2ext/bindings.cc index bc3989a7e1..a9e794f164 100644 --- a/libs/gtkmm2ext/bindings.cc +++ b/libs/gtkmm2ext/bindings.cc @@ -628,8 +628,8 @@ Bindings::add (KeyboardKey kb, Operation op, string const& action_name, XMLPrope (void) kbm.insert (new_pair).first; } - DEBUG_TRACE (DEBUG::Bindings, string_compose ("add binding between %1 (%3) and %2, group [%3]\n", - kb, action_name, (group ? group->value() : string()), op)); + DEBUG_TRACE (DEBUG::Bindings, string_compose ("%5: add binding between %1 (%3) and %2, group [%3]\n", + kb, action_name, (group ? group->value() : string()), op, _name)); if (can_save) { Keyboard::keybindings_changed (); @@ -1157,3 +1157,19 @@ std::ostream& operator<<(std::ostream& out, Gtkmm2ext::KeyboardKey const & k) { return out << "Key " << k.key() << " (" << (gdk_name ? gdk_name : "no-key") << ") state " << hex << k.state() << dec << ' ' << show_gdk_event_state (k.state()); } + +void +set_widget_bindings (Gtk::Widget& w, Bindings& b, char const * const name) +{ + BindingSet* bs = new BindingSet; + bs->push_back (&b); + w.set_data (name, bs); +} + +void +set_widget_bindings (Gtk::Widget& w, BindingSet& bs, char const * const name) +{ + w.set_data (name, &bs); +} + + diff --git a/libs/gtkmm2ext/gtkmm2ext/bindings.h b/libs/gtkmm2ext/gtkmm2ext/bindings.h index 0a15abf478..2e771e0696 100644 --- a/libs/gtkmm2ext/gtkmm2ext/bindings.h +++ b/libs/gtkmm2ext/gtkmm2ext/bindings.h @@ -210,6 +210,11 @@ class LIBGTKMM2EXT_API Bindings { friend struct DragsBlockBindings; }; +typedef std::vector BindingSet; + +void set_widget_bindings (Gtk::Widget&, Bindings&, char const * const name); +void set_widget_bindings (Gtk::Widget&, BindingSet&, char const * const name); + } // namespace std::ostream& operator<<(std::ostream& out, Gtkmm2ext::KeyboardKey const & k);