summaryrefslogtreecommitdiff
path: root/atari
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2011-02-25 23:14:41 +0000
committerOle Loots <ole@monochrom.net>2011-02-25 23:14:41 +0000
commitac80ab3d138cb9ee91f9c1361328726cd3cfc40d (patch)
tree1ebf9097c91f5ba63b1d34af353303b62f09f827 /atari
parenta4303a3d434595ac932c16c3ac0c3942f68a0039 (diff)
downloadnetsurf-ac80ab3d138cb9ee91f9c1361328726cd3cfc40d.tar.gz
netsurf-ac80ab3d138cb9ee91f9c1361328726cd3cfc40d.tar.bz2
merged clipping parameter changes.
svn path=/trunk/netsurf/; revision=11808
Diffstat (limited to 'atari')
-rwxr-xr-xatari/browser.c34
1 files changed, 22 insertions, 12 deletions
diff --git a/atari/browser.c b/atari/browser.c
index f75cf0ce6..fe3e975df 100755
--- a/atari/browser.c
+++ b/atari/browser.c
@@ -872,6 +872,14 @@ static void browser_redraw_content( struct gui_window * gw, int xoff, int yoff )
clip.y0 = b->redraw.area.y0 + b->scroll.current.y;
clip.x1 = b->redraw.area.x1 + b->scroll.current.x;
clip.y1 = b->redraw.area.y1 + b->scroll.current.y;
+ /* must clear the surface: */
+ plot.clip( &clip );
+ plot.rectangle( b->redraw.area.x0,
+ b->redraw.area.y0,
+ b->redraw.area.x1,
+ b->redraw.area.y1,
+ plot_style_fill_white
+ );
}
browser_window_redraw( b->bw, -b->scroll.current.x,
@@ -892,27 +900,24 @@ void browser_redraw_caret( struct gui_window * gw, GRECT * area )
GRECT caret;
struct s_browser * b = gw->browser;
if( b->caret.redraw == true ){
+ struct rect old_clip;
+ struct rect clip;
+
caret = b->caret.requested;
caret.g_x -= gw->browser->scroll.current.x;
caret.g_y -= gw->browser->scroll.current.y;
- struct s_clipping oldclip;
- struct rect old_clip;
- struct rect clip;
clip.x0 = caret.g_x - 1;
clip.y0 = caret.g_y - 1;
clip.x1 = caret.g_x + caret.g_w + 1;
- clip.y1 = caret.g_y + caret.g_h + 1;
- plot_get_clip( &oldclip );
+ clip.y1 = caret.g_y + caret.g_h + 1;
+ /* store old clip before adjusting it: */
+ plot_get_clip( &old_clip );
/* clip to cursor: */
plot_clip( &clip );
plot_rectangle( caret.g_x, caret.g_y,
caret.g_x+caret.g_w, caret.g_y+caret.g_h,
plot_style_caret );
- /* restore clip area: */
- old_clip.x0 = old_clip.x0;
- old_clip.y0 = old_clip.y0;
- old_clip.x1 = old_clip.x1;
- old_clip.y1 = old_clip.y1;
+ /* restore old clip area: */
plot_clip( &old_clip );
b->caret.current.g_x = caret.g_x + gw->browser->scroll.current.x;
b->caret.current.g_y = caret.g_y + gw->browser->scroll.current.y;
@@ -926,6 +931,7 @@ void browser_redraw( struct gui_window * gw )
LGRECT bwrect;
struct s_browser * b = gw->browser;
short todo[4];
+ struct rect clip;
if( b->attached == false ) {
return;
@@ -938,7 +944,11 @@ void browser_redraw( struct gui_window * gw )
plotter->resize(plotter, bwrect.g_w, bwrect.g_h);
plotter->move(plotter, bwrect.g_x, bwrect.g_y );
- plotter->clip( plotter, 0, 0, bwrect.g_w, bwrect.g_h );
+ clip.x0 = 0;
+ clip.y0 = 0;
+ clip.x1 = bwrect.g_w;
+ clip.y1 = bwrect.g_h;
+ plotter->clip( plotter, &clip );
plotter->lock(plotter);
if( b->scroll.required == true && b->bw->current_content != NULL) {
@@ -1049,4 +1059,4 @@ static void __CDECL browser_evnt_redraw( COMPONENT * c, long buff[8], void * dat
}
return;
-}
+} \ No newline at end of file