diff --git a/src/gui/toolbarMenubar/AbstractItem.cpp b/src/gui/toolbarMenubar/AbstractItem.cpp index 91baaad9..769cb497 100644 --- a/src/gui/toolbarMenubar/AbstractItem.cpp +++ b/src/gui/toolbarMenubar/AbstractItem.cpp @@ -16,6 +16,7 @@ AbstractItem::AbstractItem(string id, ActionHandler* handler, ActionType action, if (menuitem) { + // Other signal available: "toggled", currently not sure, if this may fix some bugs or generate other... menuSignalHandler = g_signal_connect(menuitem, "activate", G_CALLBACK(&menuCallback), this); g_object_ref(G_OBJECT(menuitem)); this->menuitem = menuitem; @@ -94,20 +95,15 @@ void AbstractItem::activated(GdkEvent* event, GtkMenuItem* menuitem, GtkToolButt if (menuitem) { - return; -// if (menuitem && GTK_IS_RADIO_MENU_ITEM(menuitem)) -// { -// selected = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem)); -// if (!selected) -// { -// // Ignore radio unselect event -// return; -// } -// } -// else if (menuitem && GTK_IS_CHECK_MENU_ITEM(menuitem)) -// { -// selected = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem)); -// } + if (GTK_IS_CHECK_MENU_ITEM(menuitem)) + { + selected = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem)); + if (!selected && gtk_check_menu_item_get_draw_as_radio(GTK_CHECK_MENU_ITEM(menuitem))) + { + // Unselect radio menu item + return; + } + } } else if (toolbutton && GTK_IS_TOGGLE_TOOL_BUTTON(toolbutton)) { diff --git a/ui/main.glade b/ui/main.glade index 1d607a8e..5650d939 100644 --- a/ui/main.glade +++ b/ui/main.glade @@ -87,8 +87,8 @@ False True True - + @@ -112,8 +112,8 @@ False Export as... True - + @@ -354,8 +354,8 @@ False True True - + @@ -365,8 +365,8 @@ False True True - + @@ -746,7 +746,7 @@ True False - + True False _Pen @@ -756,46 +756,42 @@ - + True False _Eraser True True - menuToolsPen - + True False _Highlighter True True - menuToolsPen - + True False _Text True True - menuToolsPen - + True False _Image True True - menuToolsPen