1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00

Fix the nasty flashing-light-grey-on-resize problem, after MCV

helpfully alerted me to the existence of gdk_window_set_background().

[originally from svn r2129]
This commit is contained in:
Simon Tatham 2002-10-25 11:58:59 +00:00
parent 6e2a0c079b
commit 528a826574

View File

@ -1089,6 +1089,14 @@ void real_palette_set(int n, int r, int g, int b)
n, r, g, b);
}
void set_window_background(void)
{
if (inst->area && inst->area->window)
gdk_window_set_background(inst->area->window, &inst->cols[18]);
if (inst->window && inst->window->window)
gdk_window_set_background(inst->window->window, &inst->cols[18]);
}
void palette_set(int n, int r, int g, int b)
{
static const int first[21] = {
@ -1099,6 +1107,8 @@ void palette_set(int n, int r, int g, int b)
real_palette_set(first[n], r, g, b);
if (first[n] >= 18)
real_palette_set(first[n] + 1, r, g, b);
if (first[n] == 18)
set_window_background();
}
void palette_reset(void)
@ -1133,6 +1143,8 @@ void palette_reset(void)
g_error("pterm: couldn't allocate colour %d (#%02x%02x%02x)\n",
i, cfg.colours[i][0], cfg.colours[i][1], cfg.colours[i][2]);
}
set_window_background();
}
void write_clip(wchar_t * data, int len, int must_deselect)
@ -1820,6 +1832,11 @@ int main(int argc, char **argv)
if (do_cmdline(argc, argv, 1)) /* post-defaults, do everything */
exit(1);
/*
* Initialise the whole instance structure to zeroes
*/
memset(inst, 0, sizeof(*inst));
inst->fonts[0] = gdk_font_load(cfg.font);
if (!inst->fonts[0]) {
fprintf(stderr, "pterm: unable to load font \"%s\"\n", cfg.font);
@ -1931,6 +1948,8 @@ int main(int argc, char **argv)
gtk_widget_show(GTK_WIDGET(inst->hbox));
gtk_widget_show(inst->window);
set_window_background();
inst->textcursor = make_mouse_ptr(GDK_XTERM);
inst->rawcursor = make_mouse_ptr(GDK_LEFT_PTR);
inst->blankcursor = make_mouse_ptr(-1);