tFix GtkCheckMenuItem on all platforms - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit f5de7c748d56a88c479065b9434a2d406d67c452
(DIR) parent adfb946b4643185b21f18de43fffddb10d07706b
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Sat, 28 Nov 2020 20:49:34 -0800
Fix GtkCheckMenuItem on all platforms
Our previous Win32 fix broke GtkCheckMenuItem
on non-Win32 GTK+3 systems.
Diffstat:
M src/gtkport/gtkport.c | 1 +
M src/gtkport/itemfactory.c | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c
t@@ -3732,6 +3732,7 @@ gboolean gtk_check_menu_item_get_active(GtkMenuItem *menu_item)
void gtk_check_menu_item_set_active(GtkMenuItem *menu_item, gboolean active)
{
GtkWidget *widget = GTK_WIDGET(menu_item);
+ menu_item->check = 1;
menu_item->active = active;
if (GTK_WIDGET_REALIZED(widget)) {
(DIR) diff --git a/src/gtkport/itemfactory.c b/src/gtkport/itemfactory.c
t@@ -208,10 +208,11 @@ void dp_gtk_item_factory_create_item(DPGtkItemFactory *ifactory,
gtk_item_factory_parse_accel(ifactory, entry->accelerator,
menu_title, &accel);
- menu_item = gtk_menu_item_new_with_mnemonic(menu_title->str);
if (entry->item_type && strcmp(entry->item_type, "<CheckItem>") == 0) {
- GTK_CHECK_MENU_ITEM(menu_item)->check = 1;
+ menu_item = gtk_check_menu_item_new_with_mnemonic(menu_title->str);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item), TRUE);
} else {
+ menu_item = gtk_menu_item_new_with_mnemonic(menu_title->str);
if (entry->item_type && strcmp(entry->item_type, "<LastBranch>") == 0) {
gtk_menu_item_set_right_justified(GTK_MENU_ITEM(menu_item), TRUE);
}