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