printf("need size\n");
gint configure_area(GtkWidget *widget, GdkEventConfigure *event, gpointer data){    struct gui_data *inst = (struct gui_data *)data;    int w, h, need_size = 0;    /*     * Set up the colour map.     */    palette_reset();    w = (event->width - 2*cfg.window_border) / inst->font_width;    h = (event->height - 2*cfg.window_border) / inst->font_height;    if (w != cfg.width || h != cfg.height) {	if (inst->pixmap) {	    gdk_pixmap_unref(inst->pixmap);	    inst->pixmap = NULL;	}	cfg.width = w;	cfg.height = h;	need_size = 1;    }    if (!inst->pixmap) {	GdkGC *gc;	inst->pixmap = gdk_pixmap_new(widget->window,				      (cfg.width * inst->font_width +				       2*cfg.window_border),				      (cfg.height * inst->font_height +				       2*cfg.window_border), -1);	gc = gdk_gc_new(inst->area->window);	gdk_gc_set_foreground(gc, &inst->cols[18]);   /* default background */	gdk_draw_rectangle(inst->pixmap, gc, 1, 0, 0,			   cfg.width * inst->font_width + 2*cfg.window_border,			   cfg.height * inst->font_height + 2*cfg.window_border);	gdk_gc_unref(gc);    }    if (need_size) {	term_size(h, w, cfg.savelines);    }    return TRUE;}