From 98095f8f7ad5e4d433b91da4453ebc3191d7d34f Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Fri, 11 Feb 2011 08:28:15 +0000 Subject: [PATCH] change risc os frontend to use browser_window_redraw (r=jmb) svn path=/trunk/netsurf/; revision=11643 --- riscos/window.c | 70 +++---------------------------------------------- 1 file changed, 4 insertions(+), 66 deletions(-) diff --git a/riscos/window.c b/riscos/window.c index 97490a1d5..ebb0e0239 100644 --- a/riscos/window.c +++ b/riscos/window.c @@ -1440,32 +1440,13 @@ void ro_gui_window_redraw(wimp_draw *redraw) osbool more; struct gui_window *g = (struct gui_window *)ro_gui_wimp_event_get_user_data(redraw->w); float scale = g->bw->scale; - hlcache_handle *h = g->bw->current_content; os_error *error; - /* Handle no content quickly - */ - if (!h) { - ro_gui_user_redraw(redraw, true, os_COLOUR_WHITE); - return; - } - - /* We can't render locked content as it is being in the process of - being transformed. We won't update anything (i.e. leaving - window area as is) instead of showing random data in case of - buffered redraw. */ - if (content_is_locked(h)) - return; - plot = ro_plotters; ro_plot_set_scale(scale); ro_gui_current_redraw_gui = g; current_redraw_browser = g->bw; - /* HTML rendering handles scale itself */ - if (content_get_type(h) == CONTENT_HTML) - scale = 1; - error = xwimp_redraw_window(redraw, &more); if (error) { LOG(("xwimp_redraw_window: 0x%x: %s", @@ -1495,20 +1476,7 @@ void ro_gui_window_redraw(wimp_draw *redraw) if (ro_gui_current_redraw_gui->option.buffer_everything) ro_gui_buffer_open(redraw); - /* Set up NetSurf's plotters with current clip rectangle */ - plot.clip(clip_x0, clip_y0, clip_x1, clip_y1); - - if (content_get_type(h) != CONTENT_HTML) - plot.rectangle(clip_x0, clip_y0, clip_x1, clip_y1, - plot_style_fill_white); - - /* Redraw the clip rectangle area of the content */ - content_redraw(h, 0, 0, - content_get_width(h) * scale, - content_get_height(h) * scale, - clip_x0, clip_y0, clip_x1, clip_y1, - g->bw->scale, - 0xFFFFFF); + browser_window_redraw(g->bw, 0, 0, clip_x0, clip_y0, clip_x1, clip_y1); if (ro_gui_current_redraw_gui->option.buffer_everything) ro_gui_buffer_close(); @@ -1557,9 +1525,7 @@ void ro_gui_window_remove_update_boxes(struct gui_window *g) { * Redraw any pending update boxes. */ void ro_gui_window_update_boxes(void) { - hlcache_handle *h; osbool more; - bool clear_background = false; bool use_buffer; wimp_draw update; int clip_x0, clip_y0, clip_x1, clip_y1; @@ -1572,11 +1538,9 @@ void ro_gui_window_update_boxes(void) { g = cur->g; if (!g) continue; - h = g->bw->current_content; + data = &cur->data; use_buffer = cur->use_buffer; - if (!h) - continue; update.w = g->window; update.box.x0 = cur->x0; @@ -1601,10 +1565,6 @@ void ro_gui_window_update_boxes(void) { ro_plot_origin_y = update.box.y1 - update.yscroll; ro_plot_set_scale(g->bw->scale); - /* We should clear the background, except for HTML. */ - if (content_get_type(h) != CONTENT_HTML) - clear_background = true; - while (more) { clip_x0 = (update.clip.x0 - ro_plot_origin_x) / 2; clip_y0 = (ro_plot_origin_y - update.clip.y1) / 2; @@ -1614,33 +1574,11 @@ void ro_gui_window_update_boxes(void) { if (use_buffer) ro_gui_buffer_open(&update); - if (clear_background) { - error = xcolourtrans_set_gcol( - os_COLOUR_WHITE, - colourtrans_SET_BG_GCOL, - os_ACTION_OVERWRITE, 0, - 0); - if (error) { - LOG(("xcolourtrans_set_gcol: " - "0x%x: %s", - error->errnum, - error->errmess)); - warn_user("MiscError", - error->errmess); - } - os_clg(); - } - - content_redraw(h, 0, 0, - content_get_width(h), - content_get_height(h), - clip_x0, clip_y0, - clip_x1, clip_y1, - g->bw->scale, - 0xFFFFFF); + browser_window_redraw(g->bw, 0, 0, clip_x0, clip_y0, clip_x1, clip_y1); if (use_buffer) ro_gui_buffer_close(); + error = xwimp_get_rectangle(&update, &more); /* RISC OS 3.7 returns an error here if enough buffer * was claimed to cause a new dynamic area to be