From 3529ead319289f4effe798c9bee0da3f48d5c5b5 Mon Sep 17 00:00:00 2001 From: Steve Fryatt Date: Sun, 24 Oct 2010 23:17:21 +0000 Subject: Restore toolbar menus in RO treeview windows. svn path=/trunk/netsurf/; revision=10908 --- riscos/cookies.c | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) (limited to 'riscos/cookies.c') diff --git a/riscos/cookies.c b/riscos/cookies.c index d73e8b5fe..51b1f5f25 100644 --- a/riscos/cookies.c +++ b/riscos/cookies.c @@ -45,12 +45,6 @@ #include "utils/url.h" #include "utils/utils.h" -static void ro_gui_cookies_menu_prepare(wimp_w window, wimp_menu *menu); -static bool ro_gui_cookies_menu_select(wimp_w window, wimp_menu *menu, - wimp_selection *selection, menu_action action); -static void ro_gui_cookies_menu_warning(wimp_w window, wimp_menu *menu, - wimp_selection *selection, menu_action action); - /* The RISC OS cookie window, toolbar and treeview data. */ static struct ro_cookies_window { @@ -160,6 +154,9 @@ void ro_gui_cookies_open(void) bool ro_gui_cookies_toolbar_click(wimp_pointer *pointer) { + if (pointer->buttons == wimp_CLICK_MENU) + return ro_gui_wimp_event_process_window_menu_click(pointer); + if (cookies_window.toolbar->editor != NULL) { ro_gui_theme_toolbar_editor_click(cookies_window.toolbar, pointer); @@ -193,13 +190,6 @@ bool ro_gui_cookies_toolbar_click(wimp_pointer *pointer) break; } - /* \todo -- We assume that the owning module will have attached a window menu - * to our parent window. If it hasn't, this call will quietly fail. - */ - - if (pointer->buttons == wimp_CLICK_MENU) - return ro_gui_wimp_event_process_window_menu_click(pointer); - return false; } @@ -214,24 +204,29 @@ void ro_gui_cookies_menu_prepare(wimp_w window, wimp_menu *menu) { bool selection; - selection = ro_treeview_has_selection(cookies_window.tv); + if (menu != cookies_window.menu && menu != tree_toolbar_menu) + return; - ro_gui_menu_set_entry_shaded(cookies_window.menu, TREE_SELECTION, - !selection); - ro_gui_menu_set_entry_shaded(cookies_window.menu, TREE_CLEAR_SELECTION, - !selection); + if (menu == cookies_window.menu) { + selection = ro_treeview_has_selection(cookies_window.tv); + + ro_gui_menu_set_entry_shaded(cookies_window.menu, TREE_SELECTION, + !selection); + ro_gui_menu_set_entry_shaded(cookies_window.menu, TREE_CLEAR_SELECTION, + !selection); + } - ro_gui_menu_set_entry_shaded(cookies_window.menu, TOOLBAR_BUTTONS, + ro_gui_menu_set_entry_shaded(menu, TOOLBAR_BUTTONS, (cookies_window.toolbar == NULL || cookies_window.toolbar->editor)); - ro_gui_menu_set_entry_ticked(cookies_window.menu, TOOLBAR_BUTTONS, + ro_gui_menu_set_entry_ticked(menu, TOOLBAR_BUTTONS, (cookies_window.toolbar != NULL && (cookies_window.toolbar->display_buttons || (cookies_window.toolbar->editor)))); - ro_gui_menu_set_entry_shaded(cookies_window.menu, TOOLBAR_EDIT, + ro_gui_menu_set_entry_shaded(menu, TOOLBAR_EDIT, cookies_window.toolbar == NULL); - ro_gui_menu_set_entry_ticked(cookies_window.menu, TOOLBAR_EDIT, + ro_gui_menu_set_entry_ticked(menu, TOOLBAR_EDIT, (cookies_window.toolbar != NULL && cookies_window.toolbar->editor)); } -- cgit v1.2.3