diff options
| author | Simon Tatham <anakin@pobox.com> | 2017-09-30 21:18:52 +0100 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2017-09-30 21:18:52 +0100 |
| commit | 4cf2241f4f74620709ae12ce76e1b601353515b3 (patch) | |
| tree | b071d4ea640b41d837ae56cfc0c2677803ebef08 | |
| parent | 84d3fd2bd8d3bd5db8cf61a134a4601307b9b7ea (diff) | |
| download | puzzles-4cf2241f4f74620709ae12ce76e1b601353515b3.zip puzzles-4cf2241f4f74620709ae12ce76e1b601353515b3.tar.gz puzzles-4cf2241f4f74620709ae12ce76e1b601353515b3.tar.bz2 puzzles-4cf2241f4f74620709ae12ce76e1b601353515b3.tar.xz | |
Fix auto-selection of presets in GTK.
In commit a7dc17c42 I apparently introduced two bugs in
changed_preset(). Firstly, the Custom menu option was being written
into the 'found' variable in nearly all cases, because it has a NULL
user-data pointer which caused it to take the wrong branch of an if
statement due to an erroneous complex condition. Secondly, having
written _something_ into 'found', I had set it to inactive rather than
active due to forgetting to change a FALSE into a TRUE.
Now when I start up Net with my usual nonstandard default parameters
(I like the 13x11 wrapping, so I set NET_DEFAULT=13x11w in my
environment), the right menu entry comes up ticked.
| -rw-r--r-- | gtk.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -1881,8 +1881,7 @@ static void changed_preset(frontend *fe) struct preset_menu_entry *entry = (struct preset_menu_entry *)g_object_get_data( G_OBJECT(gs->data), "user-data"); - - if (entry && entry->id != n) + if (!entry || entry->id != n) gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(gs->data), FALSE); else @@ -1890,7 +1889,7 @@ static void changed_preset(frontend *fe) } if (found) gtk_check_menu_item_set_active( - GTK_CHECK_MENU_ITEM(found->data), FALSE); + GTK_CHECK_MENU_ITEM(found->data), TRUE); } fe->preset_threaded = FALSE; |