Author: MarkieB
Date: Mon Aug 31 09:34:43 2009
New Revision: 9526
URL:
http://source.netsurf-browser.org?rev=9526&view=rev
Log:
improve scrolling at large scale
Modified:
branches/MarkieB/windows/windows/gui.c
Modified: branches/MarkieB/windows/windows/gui.c
URL:
http://source.netsurf-browser.org/branches/MarkieB/windows/windows/gui.c?...
==============================================================================
--- branches/MarkieB/windows/windows/gui.c (original)
+++ branches/MarkieB/windows/windows/gui.c Mon Aug 31 09:34:43 2009
@@ -1815,6 +1815,8 @@
{
if ((w == NULL) || (w->bw == NULL) || (w->bw->current_content == NULL))
return;
+ if (abs(w->bw->scale - 0.0) < 0.00001)
+ w->bw->scale = 1.0;
w->requestscrollx = sx - w->scrollx;
w->requestscrolly = sy - w->scrolly;
@@ -1851,12 +1853,14 @@
r.right = w->width + 1;
ScrollWindowEx(w->main, - w->requestscrollx, - w->requestscrolly, &r,
NULL, NULL, &redraw, SW_INVALIDATE);
- gui_window_redraw(w, redraw.left + w->requestscrollx + w->scrollx,
- redraw.top + w->requestscrolly + w->scrolly
- - w->voffset,
- redraw.right + w->requestscrollx + w->scrollx,
- redraw.bottom + w->requestscrolly + w->scrolly
- - w->voffset);
+ gui_window_redraw(w, redraw.left + (w->requestscrollx + w->scrollx)
+ / w->bw->scale - 1,
+ redraw.top + (w->requestscrolly + w->scrolly)
+ / w->bw->scale - w->voffset - 1,
+ redraw.right + (w->requestscrollx + w->scrollx)
+ / w->bw->scale + 1,
+ redraw.bottom + (w->requestscrolly + w->scrolly)
+ / w->bw->scale - w->voffset + 1);
}
void gui_window_scroll_visible(struct gui_window *w, int x0, int y0,