From 33937fe2e5990fbb282688e5757db1c07073e9c7 Mon Sep 17 00:00:00 2001 From: Richard Wilson Date: Thu, 5 Aug 2004 19:27:31 +0000 Subject: [project @ 2004-08-05 19:27:31 by rjw] Fix for hotlist toolbar not being updated for directory double clicks. Fix for OS3.7 buffered redraw error masking. Fix for error reporting stopping functionality. svn path=/import/netsurf/; revision=1181 --- riscos/dialog.c | 7 +------ riscos/hotlist.c | 1 + riscos/window.c | 18 +++++++----------- 3 files changed, 9 insertions(+), 17 deletions(-) (limited to 'riscos') diff --git a/riscos/dialog.c b/riscos/dialog.c index aa7eb598f..3bd0fffa4 100644 --- a/riscos/dialog.c +++ b/riscos/dialog.c @@ -1040,10 +1040,7 @@ void ro_gui_dialog_close(wimp_w close) LOG(("xwimp_get_caret_position: 0x%x: %s", error->errnum, error->errmess)); warn_user("WimpError", error->errmess); - return; - } - - if (caret.w == close) { + } else if (caret.w == close) { /* Check if we are a persistant window */ for (i = 0; i < MAX_PERSISTANT; i++) { @@ -1059,7 +1056,6 @@ void ro_gui_dialog_close(wimp_w close) error->errnum, error->errmess)); warn_user("WimpError", error->errmess); - return; } break; } @@ -1071,7 +1067,6 @@ void ro_gui_dialog_close(wimp_w close) LOG(("xwimp_close_window: 0x%x: %s", error->errnum, error->errmess)); warn_user("WimpError", error->errmess); - return; } } diff --git a/riscos/hotlist.c b/riscos/hotlist.c index 6ed3249b0..8a2a57100 100644 --- a/riscos/hotlist.c +++ b/riscos/hotlist.c @@ -1576,6 +1576,7 @@ void ro_gui_hotlist_click(wimp_pointer *pointer) { if (x_offset >= HOTLIST_LEAF_INSET) entry->selected = false; reformat_pending = true; hotlist_redraw_entry(entry, true); + ro_gui_menu_prepare_hotlist(); } } else if (x_offset >= HOTLIST_LEAF_INSET) { diff --git a/riscos/window.c b/riscos/window.c index 34c0ecdb0..1a914f707 100644 --- a/riscos/window.c +++ b/riscos/window.c @@ -490,6 +490,7 @@ void gui_window_update_box(struct gui_window *g, struct content *c = g->bw->current_content; osbool more; bool clear_background = false; + bool use_buffer = g->option.buffer_everything; wimp_draw update; os_error *error; @@ -512,6 +513,7 @@ void gui_window_update_box(struct gui_window *g, /* Set the current redraw gui_window to get options from */ ro_gui_current_redraw_gui = g; + if (data->redraw.full_redraw) use_buffer |= g->option.buffer_animations; /* We should clear the background, except for HTML. */ @@ -519,12 +521,9 @@ void gui_window_update_box(struct gui_window *g, clear_background = true; while (more) { - if (ro_gui_current_redraw_gui->option.buffer_everything) - ro_gui_buffer_open(&update); + + if (use_buffer) ro_gui_buffer_open(&update); if (data->redraw.full_redraw) { - if ((ro_gui_current_redraw_gui->option.buffer_animations) && - (!ro_gui_current_redraw_gui->option.buffer_everything)) - ro_gui_buffer_open(&update); if (clear_background) { error = xcolourtrans_set_gcol(os_COLOUR_WHITE, colourtrans_SET_BG, @@ -563,9 +562,7 @@ void gui_window_update_box(struct gui_window *g, g->option.scale); } - if ((ro_gui_current_redraw_gui->option.buffer_animations) || - (ro_gui_current_redraw_gui->option.buffer_everything)) - ro_gui_buffer_close(); + if (use_buffer) ro_gui_buffer_close(); error = xwimp_get_rectangle(&update, &more); if (error) { @@ -574,8 +571,7 @@ void gui_window_update_box(struct gui_window *g, doesn't actually stop anything working, so we mask it out for now until a better fix is found. */ - if ((!ro_gui_current_redraw_gui->option.buffer_everything) || - (error->errnum != 0x286)) { + if ((!use_buffer) || (error->errnum != 0x286)) { LOG(("xwimp_get_rectangle: 0x%x: %s", error->errnum, error->errmess)); warn_user("WimpError", error->errmess); @@ -1206,7 +1202,7 @@ void gui_window_remove_caret(struct gui_window *g) { os_error *error; - error = xwimp_set_caret_position(-1, -1, + error = xwimp_set_caret_position((wimp_w)-1, (wimp_i)-1, 0, 0, 0, -1); -- cgit v1.2.3