Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/356461244e9a31d9c22fa...
...commit
http://git.netsurf-browser.org/netsurf.git/commit/356461244e9a31d9c22fab3...
...tree
http://git.netsurf-browser.org/netsurf.git/tree/356461244e9a31d9c22fab358...
The branch, master has been updated
via 356461244e9a31d9c22fab358cdf95cb3f22364f (commit)
via 0114cc825d8a23ff99ce3a667aebc0ed21b0339f (commit)
from f99b17ae89ee27ff746346c17c03b1ee5ab3076b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=356461244e9a31d9c22...
commit 356461244e9a31d9c22fab358cdf95cb3f22364f
Merge: f99b17a 0114cc8
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
Merge remote-tracking branch 'origin/stevef/menus'
-----------------------------------------------------------------------
Summary of changes:
riscos/menus.c | 55 ++++++++++++++++++++++++++++----------------------
riscos/menus.h | 2 +-
riscos/print.c | 2 +-
riscos/wimp_event.c | 10 ++++----
riscos/window.c | 14 ++++++------
5 files changed, 45 insertions(+), 38 deletions(-)
diff --git a/riscos/menus.c b/riscos/menus.c
index 91232a1..d8e2f2c 100644
--- a/riscos/menus.c
+++ b/riscos/menus.c
@@ -77,7 +77,7 @@ struct menu_definition {
struct menu_definition *next; /**< next menu */
};
-
+static void ro_gui_menu_closed(void);
static void ro_gui_menu_define_menu_add(struct menu_definition *definition,
const struct ns_menu *menu, int depth,
wimp_menu_entry *parent_entry,
@@ -213,6 +213,7 @@ void ro_gui_menu_init(void)
* \param y The y position.
* \param w The window that the menu belongs to.
*/
+
void ro_gui_menu_create(wimp_menu *menu, int x, int y, wimp_w w)
{
os_error *error;
@@ -252,6 +253,7 @@ void ro_gui_menu_create(wimp_menu *menu, int x, int y, wimp_w w)
* \param w window handle
* \param i icon handle
*/
+
void ro_gui_popup_menu(wimp_menu *menu, wimp_w w, wimp_i i)
{
wimp_window_state state;
@@ -286,29 +288,24 @@ void ro_gui_popup_menu(wimp_menu *menu, wimp_w w, wimp_i i)
/**
- * Clean up after a menu has been closed, or forcible close an open menu.
- */
-void ro_gui_menu_closed(void)
+ * Forcibly close any menu or transient dialogue box that is currently open.
+ */
+
+void ro_gui_menu_destroy(void)
{
os_error *error;
- if (current_menu) {
- error = xwimp_create_menu(wimp_CLOSE_MENU, 0, 0);
- if (error) {
- LOG(("xwimp_create_menu: 0x%x: %s",
- error->errnum, error->errmess));
- warn_user("MenuError", error->errmess);
- }
-
- ro_gui_wimp_event_menus_closed(current_menu_window,
- current_menu_icon, current_menu);
+ if (current_menu == NULL)
+ return;
- current_menu = NULL;
+ error = xwimp_create_menu(wimp_CLOSE_MENU, 0, 0);
+ if (error) {
+ LOG(("xwimp_create_menu: 0x%x: %s",
+ error->errnum, error->errmess));
+ warn_user("MenuError", error->errmess);
}
- current_menu_window = NULL;
- current_menu_icon = 0;
- current_menu_open = false;
+ ro_gui_menu_closed();
}
@@ -450,15 +447,25 @@ void ro_gui_menu_warning(wimp_message_menu_warning *warning)
void ro_gui_menu_message_deleted(wimp_message_menus_deleted *deleted)
{
- if (deleted != NULL && deleted->menu == current_menu) {
+ if (deleted != NULL && deleted->menu == current_menu)
+ ro_gui_menu_closed();
+}
+
+
+/**
+ * Clean up after a menu has been closed, or forcibly close an open menu.
+ */
+
+static void ro_gui_menu_closed(void)
+{
+ if (current_menu != NULL)
ro_gui_wimp_event_menus_closed(current_menu_window,
current_menu_icon, current_menu);
- current_menu = NULL;
- current_menu_window = NULL;
- current_menu_icon = 0;
- current_menu_open = false;
- }
+ current_menu = NULL;
+ current_menu_window = NULL;
+ current_menu_icon = 0;
+ current_menu_open = false;
}
diff --git a/riscos/menus.h b/riscos/menus.h
index e2269b7..f49215f 100644
--- a/riscos/menus.h
+++ b/riscos/menus.h
@@ -168,7 +168,7 @@ struct ns_menu {
void ro_gui_menu_init(void);
void ro_gui_menu_create(wimp_menu* menu, int x, int y, wimp_w w);
-void ro_gui_menu_closed(void);
+void ro_gui_menu_destroy(void);
void ro_gui_popup_menu(wimp_menu *menu, wimp_w w, wimp_i i);
void ro_gui_menu_window_changed(wimp_w from, wimp_w to);
void ro_gui_menu_selection(wimp_selection* selection);
diff --git a/riscos/print.c b/riscos/print.c
index 09d4aae..c539f01 100644
--- a/riscos/print.c
+++ b/riscos/print.c
@@ -525,7 +525,7 @@ void ro_print_cleanup(void)
print_text_black = false;
print_prev_message = 0;
print_max_sheets = -1;
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
ro_gui_dialog_close(dialog_print);
}
diff --git a/riscos/wimp_event.c b/riscos/wimp_event.c
index a84c016..d048b9a 100644
--- a/riscos/wimp_event.c
+++ b/riscos/wimp_event.c
@@ -719,7 +719,7 @@ bool ro_gui_wimp_event_mouse_click(wimp_pointer *pointer)
}
ro_gui_dialog_add_persistent(current_menu_window,
pointer->w);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
error = xwimp_open_window(PTR_WIMP_OPEN(&open));
if (error) {
LOG(("xwimp_open_window: 0x%x: %s",
@@ -768,7 +768,7 @@ bool ro_gui_wimp_event_mouse_click(wimp_pointer *pointer)
if (pointer->buttons & wimp_CLICK_SELECT) {
ro_gui_dialog_close(pointer->w);
ro_gui_wimp_event_close_window(pointer->w);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
} else {
ro_gui_wimp_event_restore(pointer->w);
}
@@ -850,7 +850,7 @@ void ro_gui_wimp_event_ok_click(struct event_window *window,
if (state & wimp_CLICK_SELECT) {
ro_gui_dialog_close(window->w);
ro_gui_wimp_event_close_window(window->w);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
} else {
ro_gui_wimp_event_memorise(window->w);
}
@@ -1045,7 +1045,7 @@ bool ro_gui_wimp_event_keypress(wimp_key *key)
return false;
ro_gui_dialog_close(key->w);
ro_gui_wimp_event_close_window(key->w);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
return true;
/* Return performs the OK action */
case wimp_KEY_RETURN:
@@ -1772,7 +1772,7 @@ bool ro_gui_wimp_event_submenu_warning(wimp_w w, wimp_i i, wimp_menu
*menu,
}
/**
- * Handle menus being closed. This is called from ro_gui_menu_closed(), in
+ * Handle menus being closed. This is called from the menus modules, in
* every scenario when one of our own menus is open.
*
* \param w the window to owning the menu
diff --git a/riscos/window.c b/riscos/window.c
index 1644608..ed0f9e2 100644
--- a/riscos/window.c
+++ b/riscos/window.c
@@ -654,7 +654,7 @@ static void gui_window_destroy(struct gui_window *g)
ro_gui_url_complete_close();
ro_gui_dialog_close_persistent(w);
if (current_menu_window == w)
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
ro_gui_window_remove_update_boxes(g);
/* delete window */
@@ -1395,7 +1395,7 @@ void gui_create_form_select_menu(struct browser_window *bw,
LOG(("xwimp_get_pointer_info: 0x%x: %s",
error->errnum, error->errmess));
warn_user("WimpError", error->errmess);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
return;
}
@@ -4811,7 +4811,7 @@ bool ro_gui_window_prepare_form_select_menu(struct browser_window
*bw,
option = option->next)
entries++;
if (entries == 0) {
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
return false;
}
@@ -4835,7 +4835,7 @@ bool ro_gui_window_prepare_form_select_menu(struct browser_window
*bw,
gui_form_select_menu = malloc(wimp_SIZEOF_MENU(entries));
if (!gui_form_select_menu) {
warn_user("NoMemory", 0);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
return false;
}
err = utf8_to_local_encoding(messages_get("SelectMenu"), 0,
@@ -4845,7 +4845,7 @@ bool ro_gui_window_prepare_form_select_menu(struct browser_window
*bw,
assert(err != NSERROR_BAD_ENCODING);
LOG(("utf8_to_local_encoding failed"));
warn_user("NoMemory", 0);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
return false;
}
gui_form_select_menu->title_data.indirected_text.text =
@@ -4870,7 +4870,7 @@ bool ro_gui_window_prepare_form_select_menu(struct browser_window
*bw,
if (!temp) {
LOG(("cnv_space2nbsp failed"));
warn_user("NoMemory", 0);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
return false;
}
@@ -4882,7 +4882,7 @@ bool ro_gui_window_prepare_form_select_menu(struct browser_window
*bw,
assert(err != NSERROR_BAD_ENCODING);
LOG(("utf8_to_enc failed"));
warn_user("NoMemory", 0);
- ro_gui_menu_closed();
+ ro_gui_menu_destroy();
return false;
}
--
NetSurf Browser