summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--amiga/gui.c8
-rwxr-xr-xamiga/gui.h1
2 files changed, 8 insertions, 1 deletions
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];