I've had coffee, checked I'm looking in and compiling the correct
directory, and running the executable I should be, and have come up
with a solution (attached).

I'm not entirely happy with it.  It looks like the core is using
current_redraw_browser somewhere outside of content_redraw() -
previously it was pretty happy with being NULLed after
content_redraw() had returned.

The second issue is that with knockout plotters enabled,
knockout_plotters_start() gets called a second time, after plot has
been reset to amiplot (it may be a bad
knockout_plotters_start/knockout_plotters_end pairing).  This asserts,
so I've set knockout to false for now.

I suspect both of these issues are linked, but I don't know enough
about the core to figure out exactly what is going on.

Regards
Chris
Index: thumbnail.c
===================================================================
--- thumbnail.c (revision 9215)
+++ thumbnail.c (working copy)
@@ -41,8 +41,10 @@
        bitmap->nativebmheight = bitmap->height;
        ami_clearclipreg(&browserglob.rp);
        plot = amiplot;
+       current_redraw_browser = curbw;
        content_redraw(content, 0, 0, content->width, content->width,
        0, 0, content->width, content->width, 1.0, 0xFFFFFF);
+//     current_redraw_browser = NULL;
 
        if(GfxBase->lib_Version >= 53) // AutoDoc says v52, but this function 
isn't in OS4.0, so checking for v53 (OS4.1)
        {
Index: gui.c
===================================================================
--- gui.c       (revision 9215)
+++ gui.c       (working copy)
@@ -126,9 +126,9 @@
 BOOL locked_screen = FALSE;
 BOOL screen_closed = FALSE;
 
-extern colour css_scrollbar_fg_colour;
-extern colour css_scrollbar_bg_colour;
-extern colour css_scrollbar_arrow_colour;
+extern colour scroll_widget_fg_colour;
+extern colour scroll_widget_bg_colour;
+extern colour scroll_widget_arrow_colour;
 
 static Object *mouseptrobj[AMI_LASTPOINTER+1];
 static struct BitMap *mouseptrbm[AMI_LASTPOINTER+1];
@@ -335,9 +335,9 @@
        }
 
        nscss_screen_dpi = INTTOFIX(72);
-       css_scrollbar_fg_colour = 0x00aaaaaa;
-       css_scrollbar_bg_colour = 0x00833c3c;
-       css_scrollbar_arrow_colour = 0x00d6d6d6;
+       scroll_widget_fg_colour = 0x00aaaaaa;
+       scroll_widget_bg_colour = 0x00833c3c;
+       scroll_widget_arrow_colour = 0x00d6d6d6;
 
        if((!option_accept_language) || (option_accept_language[0] == '\0'))
        {
@@ -2309,7 +2309,7 @@
                g->shared->bw->scale,
                0xFFFFFF);
 
-       current_redraw_browser = NULL;
+//     current_redraw_browser = NULL;
 
        ami_clearclipreg(&browserglob.rp);
 
@@ -2375,9 +2375,6 @@
        if(!c) return;
        if (c->locked) return;
 
-       current_redraw_browser = g->bw;
-//     currp = &browserglob.rp;
-
        width=bbox->Width;
        height=bbox->Height;
        xoffset=bbox->Left;
@@ -2431,6 +2428,7 @@
        else
        {
                ami_clg(0xffffff);
+               current_redraw_browser = g->bw;
 
                if(c->type == CONTENT_HTML)
                {
@@ -2458,7 +2456,7 @@
                                                                
bbox->Width,bbox->Height,0x0C0);
        }
 
-       current_redraw_browser = NULL;
+//     current_redraw_browser = NULL;
 
        ami_update_buttons(g);
 
Index: plotters.c
===================================================================
--- plotters.c  (revision 9215)
+++ plotters.c  (working copy)
@@ -69,7 +69,7 @@
        .arc = ami_arc,
        .bitmap = ami_bitmap_tile,
        .path = ami_path,
-       .option_knockout = true,
+       .option_knockout = false,
 };
 
 #ifdef NS_AMIGA_CAIRO

Reply via email to