From ab61c6837f6aed0179e098c83a81445fba1bab9a Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 10 Dec 2018 18:40:00 -0500 Subject: [PATCH] add ActionManager::set_sensitive() for Gtk::ActionGroup --- libs/gtkmm2ext/actions.cc | 15 +++++++++++++++ libs/gtkmm2ext/gtkmm2ext/actions.h | 1 + 2 files changed, 16 insertions(+) diff --git a/libs/gtkmm2ext/actions.cc b/libs/gtkmm2ext/actions.cc index 89ee999e4c..edf092d909 100644 --- a/libs/gtkmm2ext/actions.cc +++ b/libs/gtkmm2ext/actions.cc @@ -93,6 +93,21 @@ ActionManager::save_action_states () } } +void +ActionManager::set_sensitive (Glib::RefPtr group, bool yn) +{ + /* the C++ API for functions used here appears to be broken in + gtkmm2.6, so we fall back to the C level. + */ + + GtkActionGroup* grp = group->gobj(); + + for (GList* acts = gtk_action_group_list_actions (grp); acts; acts = g_list_next (acts)) { + GtkAction* action = (GtkAction*) acts->data; + gtk_action_set_sensitive (action, yn); + } +} + void ActionManager::enable_active_actions () { diff --git a/libs/gtkmm2ext/gtkmm2ext/actions.h b/libs/gtkmm2ext/gtkmm2ext/actions.h index b396294f11..6311a98631 100644 --- a/libs/gtkmm2ext/gtkmm2ext/actions.h +++ b/libs/gtkmm2ext/gtkmm2ext/actions.h @@ -56,6 +56,7 @@ namespace ActionManager { LIBGTKMM2EXT_API extern std::string unbound_string; /* the key string returned if an action is not bound */ LIBGTKMM2EXT_API extern Glib::RefPtr ui_manager; + LIBGTKMM2EXT_API extern void set_sensitive (Glib::RefPtr group, bool yn); LIBGTKMM2EXT_API extern void set_sensitive (std::vector >& actions, bool); LIBGTKMM2EXT_API extern std::string get_key_representation (const std::string& accel_path, Gtk::AccelKey& key); LIBGTKMM2EXT_API extern Gtk::Widget* get_widget (const char * name); -- 2.30.2