summaryrefslogtreecommitdiff
path: root/riscos/window.c
diff options
context:
space:
mode:
authorRichard Wilson <rjw@netsurf-browser.org>2007-03-03 19:46:20 +0000
committerRichard Wilson <rjw@netsurf-browser.org>2007-03-03 19:46:20 +0000
commit73686886420f9588efc21befeb061c62545bfde9 (patch)
tree4ea69f6acd40557993c2cae9b83a46c91caa05f2 /riscos/window.c
parentcd3fb4a7cc3abde20e877fa919579d5936dc125f (diff)
downloadnetsurf-73686886420f9588efc21befeb061c62545bfde9.tar.gz
netsurf-73686886420f9588efc21befeb061c62545bfde9.tar.bz2
Dynamically update scale view (implement 1556975) and prevent double redraws.
svn path=/trunk/netsurf/; revision=3191
Diffstat (limited to 'riscos/window.c')
-rw-r--r--riscos/window.c34
1 files changed, 8 insertions, 26 deletions
diff --git a/riscos/window.c b/riscos/window.c
index 753c7ca56..620b61b62 100644
--- a/riscos/window.c
+++ b/riscos/window.c
@@ -518,27 +518,7 @@ void gui_window_redraw(struct gui_window *g, int x0, int y0, int x1, int y1)
*/
void gui_window_redraw_window(struct gui_window *g)
{
- wimp_window_info info;
- os_error *error;
-
- assert(g);
-
- info.w = g->window;
- error = xwimp_get_window_info_header_only(&info);
- if (error) {
- LOG(("xwimp_get_window_info_header_only: 0x%x: %s",
- error->errnum, error->errmess));
- warn_user("WimpError", error->errmess);
- return;
- }
-
- error = xwimp_force_redraw(g->window, info.extent.x0, info.extent.y0,
- info.extent.x1, info.extent.y1);
- if (error) {
- LOG(("xwimp_force_redraw: 0x%x: %s",
- error->errnum, error->errmess));
- warn_user("WimpError", error->errmess);
- }
+ gui_window_redraw(g, 0, -8192, 8192, 8192);
}
@@ -1394,11 +1374,13 @@ void gui_window_set_scale(struct gui_window *g, float scale)
g->option.scale = scale;
c = g->bw->current_content;
if (c) {
- /* todo: we should only call _update for contents that don't have a
- * reformat function and thus don't redraw themselves */
- browser_window_update(g->bw, false);
- g->reformat_pending = true;
- gui_reformat_pending = true;
+ ro_gui_dialog_update_zoom(g);
+ if (!content_get_reformat(c)) {
+ browser_window_update(g->bw, false);
+ } else {
+ g->reformat_pending = true;
+ gui_reformat_pending = true;
+ }
}
}