From 26dbb7a60230c971e1681454c0008724331b1657 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Thu, 11 Apr 2013 21:20:25 +0100 Subject: Avoid multiple schedules of redraws --- amiga/gui.c | 8 +++++++- amiga/gui.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/amiga/gui.c b/amiga/gui.c index bbd52bb10..0e07be020 100644 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -3888,6 +3888,8 @@ static void ami_redraw_callback(void *p) gui_window_place_caret(gwin->bw->window, gwin->bw->window->c_x, gwin->bw->window->c_y, gwin->bw->window->c_h, NULL); } + + gwin->redraw_scheduled = false; } /** @@ -3900,9 +3902,13 @@ static void ami_redraw_callback(void *p) void ami_schedule_redraw(struct gui_window_2 *gwin, bool full_redraw) { int cs = 0; + + if(full_redraw) gwin->redraw_required = true; + if(gwin->redraw_scheduled == true) return; + if(gwin->bw->reformat_pending) cs = nsoption_int(reformat_delay); schedule(cs, ami_redraw_callback, gwin); - if(full_redraw) gwin->redraw_required = true; + gwin->redraw_scheduled = true; } static void ami_do_redraw_tiled(struct gui_window_2 *gwin, bool busy, diff --git a/amiga/gui.h b/amiga/gui.h index 08a8b19e9..342c9f7f5 100755 --- a/amiga/gui.h +++ b/amiga/gui.h @@ -97,6 +97,7 @@ struct gui_window_2 { int temp; bool redraw_scroll; bool new_content; + bool redraw_scheduled; char *menulab[AMI_MENU_AREXX_MAX + 1]; char menukey[AMI_MENU_AREXX_MAX + 1]; struct Hook menu_hook[AMI_MENU_AREXX_MAX + 1]; -- cgit v1.2.3