diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2012-07-26 19:00:38 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2012-07-26 19:00:38 +0100 |
commit | 305938bb48d95b54b0c60724942f257ddc46532b (patch) | |
tree | 219e91a7ea8fdf5db5d386c5ba77c486d0037975 /framebuffer | |
parent | d9d7dcb758761e3123fa0fb2d9c6ebc626041662 (diff) | |
download | netsurf-305938bb48d95b54b0c60724942f257ddc46532b.tar.gz netsurf-305938bb48d95b54b0c60724942f257ddc46532b.tar.bz2 |
Avoid a load of repeat operations when panning by greater than viewport size.
Diffstat (limited to 'framebuffer')
-rw-r--r-- | framebuffer/gui.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/framebuffer/gui.c b/framebuffer/gui.c index d6a340d8f..aa928707d 100644 --- a/framebuffer/gui.c +++ b/framebuffer/gui.c @@ -202,8 +202,8 @@ fb_pan(fbtk_widget_t *widget, y = fbtk_get_absy(widget); /* if the pan exceeds the viewport size just redraw the whole area */ - if (bwidget->pany > height || bwidget->pany < -height || - bwidget->panx > width || bwidget->panx < -width) { + if (bwidget->pany >= height || bwidget->pany <= -height || + bwidget->panx >= width || bwidget->panx <= -width) { bwidget->scrolly += bwidget->pany; bwidget->scrollx += bwidget->panx; @@ -212,6 +212,8 @@ fb_pan(fbtk_widget_t *widget, /* ensure we don't try to scroll again */ bwidget->panx = 0; bwidget->pany = 0; + bwidget->pan_required = false; + return; } if (bwidget->pany < 0) { |