From 2a42b028b2c407cdd796a487d738370ee96e7d9b Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sat, 15 Dec 2012 14:39:01 +0000 Subject: Check the checked state of the menu items a more correct way --- amiga/menu.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'amiga') diff --git a/amiga/menu.c b/amiga/menu.c index a12ed82ff..3d9b98e16 100755 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -862,17 +862,35 @@ static void ami_menu_item_browser_cookies(struct Hook *hook, APTR window, struct static void ami_menu_item_browser_foreimg(struct Hook *hook, APTR window, struct IntuiMessage *msg) { - nsoption_set_bool(foreground_images, !nsoption_bool(foreground_images)); + struct Menu *menustrip; + bool checked = false; + + GetAttr(WINDOW_MenuStrip, (Object *)window, (ULONG *)&menustrip); + if(ItemAddress(menustrip, msg->Code)->Flags & CHECKED) checked = true; + + nsoption_set_bool(foreground_images, checked); } static void ami_menu_item_browser_backimg(struct Hook *hook, APTR window, struct IntuiMessage *msg) { - nsoption_set_bool(background_images, !nsoption_bool(background_images)); + struct Menu *menustrip; + bool checked = false; + + GetAttr(WINDOW_MenuStrip, (Object *)window, (ULONG *)&menustrip); + if(ItemAddress(menustrip, msg->Code)->Flags & CHECKED) checked = true; + + nsoption_set_bool(background_images, checked); } static void ami_menu_item_browser_enablejs(struct Hook *hook, APTR window, struct IntuiMessage *msg) { - nsoption_set_bool(enable_javascript, !nsoption_bool(enable_javascript)); + struct Menu *menustrip; + bool checked = false; + + GetAttr(WINDOW_MenuStrip, (Object *)window, (ULONG *)&menustrip); + if(ItemAddress(menustrip, msg->Code)->Flags & CHECKED) checked = true; + + nsoption_set_bool(enable_javascript, checked); } static void ami_menu_item_browser_scale_decrease(struct Hook *hook, APTR window, struct IntuiMessage *msg) -- cgit v1.2.3