mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 16:05:44 -07:00
Chris Emerson observed the same status-bar flicker under GTK as I
did under Windows, so here's his patch (blatantly copied from my own fix in windows.c :-). [originally from svn r5891]
This commit is contained in:
14
gtk.c
14
gtk.c
@ -78,6 +78,7 @@ struct frontend {
|
|||||||
GtkWidget *cfgbox;
|
GtkWidget *cfgbox;
|
||||||
char *paste_data;
|
char *paste_data;
|
||||||
int paste_data_len;
|
int paste_data_len;
|
||||||
|
char *laststatus;
|
||||||
};
|
};
|
||||||
|
|
||||||
void get_random_seed(void **randseed, int *randseedsize)
|
void get_random_seed(void **randseed, int *randseedsize)
|
||||||
@ -103,9 +104,14 @@ void status_bar(frontend *fe, char *text)
|
|||||||
assert(fe->statusbar);
|
assert(fe->statusbar);
|
||||||
|
|
||||||
rewritten = midend_rewrite_statusbar(fe->me, text);
|
rewritten = midend_rewrite_statusbar(fe->me, text);
|
||||||
gtk_statusbar_pop(GTK_STATUSBAR(fe->statusbar), fe->statusctx);
|
if (!fe->laststatus || strcmp(rewritten, fe->laststatus)) {
|
||||||
gtk_statusbar_push(GTK_STATUSBAR(fe->statusbar), fe->statusctx, rewritten);
|
gtk_statusbar_pop(GTK_STATUSBAR(fe->statusbar), fe->statusctx);
|
||||||
sfree(rewritten);
|
gtk_statusbar_push(GTK_STATUSBAR(fe->statusbar), fe->statusctx, rewritten);
|
||||||
|
sfree(fe->laststatus);
|
||||||
|
fe->laststatus = rewritten;
|
||||||
|
} else {
|
||||||
|
sfree(rewritten);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_draw(frontend *fe)
|
void start_draw(frontend *fe)
|
||||||
@ -1204,6 +1210,8 @@ static frontend *new_window(char *game_id, char **error)
|
|||||||
fe->fonts = NULL;
|
fe->fonts = NULL;
|
||||||
fe->nfonts = fe->fontsize = 0;
|
fe->nfonts = fe->fontsize = 0;
|
||||||
|
|
||||||
|
fe->laststatus = NULL;
|
||||||
|
|
||||||
fe->paste_data = NULL;
|
fe->paste_data = NULL;
|
||||||
fe->paste_data_len = 0;
|
fe->paste_data_len = 0;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user