~mdw
/
sgt
/
puzzles
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
GTK misfires timers at inconvenient moments, sometimes causing a new
[sgt/puzzles]
/
gtk.c
diff --git
a/gtk.c
b/gtk.c
index
3fdfc87
..
81aeda1
100644
(file)
--- a/
gtk.c
+++ b/
gtk.c
@@
-98,10
+98,14
@@
void frontend_default_colour(frontend *fe, float *output)
void status_bar(frontend *fe, char *text)
{
void status_bar(frontend *fe, char *text)
{
+ char *rewritten;
+
assert(fe->statusbar);
assert(fe->statusbar);
+ rewritten = midend_rewrite_statusbar(fe->me, text);
gtk_statusbar_pop(GTK_STATUSBAR(fe->statusbar), fe->statusctx);
gtk_statusbar_pop(GTK_STATUSBAR(fe->statusbar), fe->statusctx);
- gtk_statusbar_push(GTK_STATUSBAR(fe->statusbar), fe->statusctx, text);
+ gtk_statusbar_push(GTK_STATUSBAR(fe->statusbar), fe->statusctx, rewritten);
+ sfree(rewritten);
}
void start_draw(frontend *fe)
}
void start_draw(frontend *fe)
@@
-464,7
+468,7
@@
static gint configure_area(GtkWidget *widget,
gdk_draw_rectangle(fe->pixmap, gc, 1, 0, 0, fe->w, fe->h);
gdk_gc_unref(gc);
gdk_draw_rectangle(fe->pixmap, gc, 1, 0, 0, fe->w, fe->h);
gdk_gc_unref(gc);
- midend_redraw(fe->me);
+ midend_
force_
redraw(fe->me);
return TRUE;
}
return TRUE;
}
@@
-1303,7
+1307,7
@@
int main(int argc, char **argv)
while (n-- > 0) {
game_aux_info *aux = NULL;
while (n-- > 0) {
game_aux_info *aux = NULL;
- char *desc = thegame.new_desc(par, rs, &aux);
+ char *desc = thegame.new_desc(par, rs, &aux
, FALSE
);
printf("%s:%s\n", parstr, desc);
sfree(desc);
if (aux)
printf("%s:%s\n", parstr, desc);
sfree(desc);
if (aux)