diff options
Diffstat (limited to 'amiga/gui.c')
-rwxr-xr-x | amiga/gui.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/amiga/gui.c b/amiga/gui.c index 6fc8a2991..d77210541 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -603,7 +603,7 @@ void ami_openscreen(void) if(screenmodereq = AllocAslRequest(ASL_ScreenModeRequest,NULL)) { if(AslRequestTags(screenmodereq, - ASLSM_MinDepth,16, + ASLSM_MinDepth,0, ASLSM_MaxDepth,32, TAG_DONE)) { @@ -2209,6 +2209,7 @@ void ami_switch_tab(struct gui_window_2 *gwin,bool redraw) return; } + ami_plot_release_pens(&gwin->shared_pens); ami_update_buttons(gwin); ami_menu_update_disabled(gwin->bw->window, gwin->bw->current_content); @@ -2574,6 +2575,8 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, return NULL; } + NewMinList(&g->shared->shared_pens); + g->shared->scrollerhook.h_Entry = (void *)ami_scroller_hook; g->shared->scrollerhook.h_Data = g->shared; @@ -3182,12 +3185,14 @@ void gui_window_destroy(struct gui_window *g) return; } + ami_plot_release_pens(&g->shared->shared_pens); + DisposeObject(g->shared->objects[OID_MAIN]); ami_gui_appicon_remove(g->shared); if(g->shared->appwin) RemoveAppWindow(g->shared->appwin); /* These aren't freed by the above. - * TODO: nav_west etc need freeing too */ + * TODO: nav_west etc need freeing too? */ DisposeObject(g->shared->objects[GID_ADDTAB_BM]); DisposeObject(g->shared->objects[GID_CLOSETAB_BM]); DisposeObject(g->shared->objects[GID_TABS_FLAG]); @@ -3280,6 +3285,8 @@ void ami_do_redraw_tiled(struct gui_window_2 *gwin, int tile_x_scale = (int)(nsoption_int(redraw_tile_size_x) / gwin->bw->scale); int tile_y_scale = (int)(nsoption_int(redraw_tile_size_y) / gwin->bw->scale); + browserglob.shared_pens = &gwin->shared_pens; + if(top < 0) { height += top; top = 0; @@ -3308,7 +3315,7 @@ void ami_do_redraw_tiled(struct gui_window_2 *gwin, if(width <= 0) return; if(height <= 0) return; -//printf("%ld %ld %ld %ld\n",left, top, width, height); +// printf("%ld %ld %ld %ld\n",left, top, width, height); for(y = top; y < (top + height); y += tile_y_scale) { clip.y0 = 0; @@ -3470,14 +3477,14 @@ void ami_do_redraw(struct gui_window_2 *g) g->bw->window->c_h = g->bw->window->c_h_temp; - if(vcurrent>oldv) + if(vcurrent>oldv) /* Going down */ { ami_do_redraw_limits(g->bw->window, g->bw, hcurrent, (height / g->bw->scale) + oldv - 1, hcurrent + (width / g->bw->scale), vcurrent + (height / g->bw->scale) + 1); } - else if(vcurrent<oldv) + else if(vcurrent<oldv) /* Going up */ { ami_do_redraw_limits(g->bw->window, g->bw, hcurrent, vcurrent, @@ -3485,14 +3492,14 @@ void ami_do_redraw(struct gui_window_2 *g) oldv); } - if(hcurrent>oldh) + if(hcurrent>oldh) /* Going right */ { ami_do_redraw_limits(g->bw->window, g->bw, (width / g->bw->scale) + oldh , vcurrent, hcurrent + (width / g->bw->scale), vcurrent + (height / g->bw->scale)); } - else if(hcurrent<oldh) + else if(hcurrent<oldh) /* Going left */ { ami_do_redraw_limits(g->bw->window, g->bw, hcurrent, vcurrent, @@ -3997,7 +4004,7 @@ void gui_window_new_content(struct gui_window *g) g->shared->oldh = 0; g->shared->oldv = 0; g->favicon = NULL; - + ami_plot_release_pens(&g->shared->shared_pens); ami_menu_update_disabled(g, c); } |