Author: chris_y
Date: Sun May 31 10:05:26 2009
New Revision: 7667
URL:
http://source.netsurf-browser.org?rev=7667&view=rev
Log:
Fix faster_scroll
Modified:
trunk/netsurf/amiga/gui.c
trunk/netsurf/amiga/gui.h
trunk/netsurf/amiga/history_local.c
Modified: trunk/netsurf/amiga/gui.c
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=7667&...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Sun May 31 10:05:26 2009
@@ -1188,7 +1188,7 @@
if((node->Type == AMINS_WINDOW) || (node->Type == AMINS_FRAME))
{
if(gwin->redraw_required)
- ami_do_redraw(gwin,false);
+ ami_do_redraw(gwin);
if(gwin->throbber_frame)
ami_update_throbber(gwin,false);
@@ -1329,7 +1329,7 @@
ReplyMsg((struct Message *)appmsg);
if(gwin->redraw_required)
- ami_do_redraw(gwin,false);
+ ami_do_redraw(gwin);
}
}
@@ -2292,7 +2292,7 @@
data->redraw.height+data->redraw.y);
}
-void ami_do_redraw(struct gui_window_2 *g,bool scroll)
+void ami_do_redraw(struct gui_window_2 *g)
{
struct Region *reg = NULL;
struct Rectangle rect;
@@ -2325,33 +2325,31 @@
{
browser_window_reformat(g->bw,width,height);
g->bw->reformat_pending = false;
- scroll = FALSE;
+ g->redraw_scroll = false;
}
// if (c->type == CONTENT_HTML) scale = 1;
- if(scroll && c->type == CONTENT_HTML)
+ if(g->redraw_scroll && c->type == CONTENT_HTML)
{
ScrollWindowRaster(g->win,hcurrent-oldh,vcurrent-oldv,xoffset,yoffset,xoffset+width,yoffset+height);
- if((vcurrent-oldv) > 0)
- {
- ami_do_redraw_limits(g->bw->window,c,0,height-(vcurrent-oldv),width,(vcurrent-oldv));
- // BltBitMapRastPort(glob.bm,0,vcurrent-oldv,g->win->RPort,xoffset,yoffset+(vcurrent-oldv),width,height-(vcurrent-oldv),0x0C0);
// this shouldn't be needed but the blit in ami_do_redraw_limits isn't working in
this instance
- }
- else if((vcurrent-oldv) < 0)
- {
- ami_do_redraw_limits(g->bw->window,c,0,0,width,oldv-vcurrent);
- }
-
- if((hcurrent-oldh) > 0)
- {
- ami_do_redraw_limits(g->bw->window,c,width-(hcurrent-oldh),0,(hcurrent-oldh),height);
- // BltBitMapRastPort(glob.bm,vcurrent-oldv,0,g->win->RPort,xoffset+(hcurrent-oldh),yoffset,width-(hcurrent-oldh),height,0x0C0);
// this shouldn't be needed but the blit in ami_do_redraw_limits isn't working in
this instance
- }
- else if((hcurrent-oldh) < 0)
- {
- ami_do_redraw_limits(g->bw->window,c,0,0,oldh-hcurrent,height);
+ if(vcurrent>oldv)
+ {
+ ami_do_redraw_limits(g->bw->window,c,hcurrent,height+oldv,hcurrent+width,vcurrent+height);
+ }
+ else if(vcurrent<oldv)
+ {
+ ami_do_redraw_limits(g->bw->window,c,hcurrent,vcurrent,hcurrent+width,oldv);
+ }
+
+ if(hcurrent>oldh)
+ {
+ ami_do_redraw_limits(g->bw->window,c,width+oldh,vcurrent,hcurrent+width,vcurrent+height);
+ }
+ else if(hcurrent<oldh)
+ {
+ ami_do_redraw_limits(g->bw->window,c,hcurrent,vcurrent,oldh,vcurrent+height);
}
}
else
@@ -2399,6 +2397,7 @@
g->oldh = hcurrent;
g->oldv = vcurrent;
+ g->redraw_scroll = false;
g->redraw_required = false;
}
@@ -2432,6 +2431,7 @@
TAG_DONE);
g->shared->redraw_required = true;
+ g->shared->redraw_scroll = true;
g->scrollx = sx;
g->scrolly = sy;
@@ -2940,9 +2940,9 @@
// history_set_current_scroll(gwin->bw->history,
// gwin->bw->window->scrollx,gwin->bw->window->scrolly);
- if(!option_faster_scroll)
- gwin->redraw_required = true;
- else ami_do_redraw(gwin,true);
+ if(option_faster_scroll)
+ gwin->redraw_scroll = true;
+ gwin->redraw_required = true;
break;
}
break;
Modified: trunk/netsurf/amiga/gui.h
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.h?rev=7667&...
==============================================================================
--- trunk/netsurf/amiga/gui.h (original)
+++ trunk/netsurf/amiga/gui.h Sun May 31 10:05:26 2009
@@ -97,6 +97,7 @@
struct find_window *searchwin;
ULONG oldh;
ULONG oldv;
+ bool redraw_scroll;
};
struct gui_window
@@ -133,7 +134,7 @@
void ami_quit_netsurf(void);
void ami_get_theme_filename(char *filename,char *themestring);
void ami_clearclipreg(struct RastPort *rp);
-void ami_do_redraw(struct gui_window_2 *g,bool scroll);
+void ami_do_redraw(struct gui_window_2 *g);
struct RastPort *currp;
struct TextFont *origrpfont;
Modified: trunk/netsurf/amiga/history_local.c
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/history_local.c?rev...
==============================================================================
--- trunk/netsurf/amiga/history_local.c (original)
+++ trunk/netsurf/amiga/history_local.c Sun May 31 10:05:26 2009
@@ -200,7 +200,7 @@
case SELECTUP:
history_click(hw->bw,history_current,x,y,false);
ami_history_redraw(hw);
- ami_do_redraw(hw->bw->window->shared,false);
+ ami_do_redraw(hw->bw->window->shared);
break;
case MIDDLEUP: