gboolean ghid_port_drawing_area_configure_event_cb (GtkWidget * widget, GdkEventConfigure * ev, GHidPort * out) { static gboolean first_time_done; HideCrosshair (TRUE); gport->width = ev->width; gport->height = ev->height; if (gport->pixmap) gdk_pixmap_unref (gport->pixmap); gport->pixmap = gdk_pixmap_new (widget->window, gport->width, gport->height, -1); gport->drawable = gport->pixmap; if (!first_time_done) { gport->colormap = gtk_widget_get_colormap (gport->top_window); gport->bg_gc = gdk_gc_new (gport->drawable); if (gdk_color_parse (Settings.BackgroundColor, &gport->bg_color)) gdk_color_alloc (gport->colormap, &gport->bg_color); else gdk_color_white (gport->colormap, &gport->bg_color); gdk_gc_set_foreground (gport->bg_gc, &gport->bg_color); gport->offlimits_gc = gdk_gc_new (gport->drawable); if (gdk_color_parse (Settings.OffLimitColor, &gport->offlimits_color)) gdk_color_alloc (gport->colormap, &gport->offlimits_color); else gdk_color_white (gport->colormap, &gport->offlimits_color); gdk_gc_set_foreground (gport->offlimits_gc, &gport->offlimits_color); first_time_done = TRUE; PCBChanged (0, NULL, 0, 0); } if (gport->mask) { gdk_pixmap_unref (gport->mask); gport->mask = gdk_pixmap_new (0, gport->width, gport->height, 1); } ghid_port_ranges_scale (FALSE); ghid_invalidate_all (); RestoreCrosshair (TRUE); return 0; }
gboolean ghid_port_drawing_area_configure_event_cb (GtkWidget * widget, GdkEventConfigure * ev, GHidPort * out) { static gboolean first_time_done; gport->width = ev->width; gport->height = ev->height; if (gport->pixmap) gdk_pixmap_unref (gport->pixmap); gport->pixmap = gdk_pixmap_new (gtk_widget_get_window (widget), gport->width, gport->height, -1); gport->drawable = gport->pixmap; if (!first_time_done) { gport->colormap = gtk_widget_get_colormap (gport->top_window); if (gdk_color_parse (Settings.BackgroundColor, &gport->bg_color)) gdk_color_alloc (gport->colormap, &gport->bg_color); else gdk_color_white (gport->colormap, &gport->bg_color); if (gdk_color_parse (Settings.OffLimitColor, &gport->offlimits_color)) gdk_color_alloc (gport->colormap, &gport->offlimits_color); else gdk_color_white (gport->colormap, &gport->offlimits_color); first_time_done = TRUE; ghid_drawing_area_configure_hook (out); PCBChanged (0, NULL, 0, 0); } else { ghid_drawing_area_configure_hook (out); } ghid_port_ranges_scale (); ghid_invalidate_all (); return 0; }