aboutsummaryrefslogtreecommitdiff
path: root/midend.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2005-05-31 08:50:42 +0000
committerSimon Tatham <anakin@pobox.com>2005-05-31 08:50:42 +0000
commit2698fc9e9e29b9ef5578bf79bd4059616d9667d8 (patch)
tree3ca0fa043a3e6769365ab518837bf48b0d39186a /midend.c
parentee429c13cd91a43609eb4688c7a20b5c5056662f (diff)
downloadpuzzles-2698fc9e9e29b9ef5578bf79bd4059616d9667d8.zip
puzzles-2698fc9e9e29b9ef5578bf79bd4059616d9667d8.tar.gz
puzzles-2698fc9e9e29b9ef5578bf79bd4059616d9667d8.tar.bz2
puzzles-2698fc9e9e29b9ef5578bf79bd4059616d9667d8.tar.xz
GTK misfires timers at inconvenient moments, sometimes causing a new
puzzle of a different size to be redrawn before the pixmap is resized, and since backends never redraw already-drawn stuff this is a problem. Was biting me when I entered a Mines game ID of a different size than the current settings into the Specific box. [originally from svn r5872]
Diffstat (limited to 'midend.c')
-rw-r--r--midend.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/midend.c b/midend.c
index e8bcd20..de20e14 100644
--- a/midend.c
+++ b/midend.c
@@ -132,6 +132,14 @@ static void midend_set_timer(midend_data *me)
deactivate_timer(me->frontend);
}
+void midend_force_redraw(midend_data *me)
+{
+ if (me->drawstate)
+ me->ourgame->free_drawstate(me->drawstate);
+ me->drawstate = me->ourgame->new_drawstate(me->states[0].state);
+ midend_redraw(me);
+}
+
void midend_new_game(midend_data *me)
{
while (me->nstates > 0)