diff --git a/libs/gtkmm2ext/actions.cc b/libs/gtkmm2ext/actions.cc index 1b772757bc..2f0581e361 100644 --- a/libs/gtkmm2ext/actions.cc +++ b/libs/gtkmm2ext/actions.cc @@ -310,27 +310,34 @@ ActionManager::get_action (char const * group_name, char const * action_name, bo RefPtr ActionManager::get_toggle_action (char const * group_name, char const * action_name, bool or_die) { - RefPtr act = get_action (group_name, action_name, or_die); + RefPtr act = Glib::RefPtr::cast_dynamic (get_action (group_name, action_name, or_die)); - if (!act) { - return RefPtr(); + if (act) { + return act; } - return Glib::RefPtr::cast_dynamic (act); + if (or_die) { + ::abort (); + } + + return RefPtr(); } RefPtr ActionManager::get_radio_action (char const * group_name, char const * action_name, bool or_die) { - RefPtr act = get_action (group_name, action_name, or_die); + RefPtr act = Glib::RefPtr::cast_dynamic (get_action (group_name, action_name, or_die)); - if (!act) { - return RefPtr(); + if (act) { + return act; } - return Glib::RefPtr::cast_dynamic (act); -} + if (or_die) { + ::abort (); + } + return RefPtr(); +} RefPtr ActionManager::create_action_group (void * owner, string const & name)