diff options
author | Daniel Elstner <daniel.elstner@gmx.net> | 2003-01-30 20:05:03 +0000 |
---|---|---|
committer | Daniel Elstner <daniel@src.gnome.org> | 2003-01-30 20:05:03 +0000 |
commit | 9ca772ac70c999f15c711a5c730ddad148985cf0 (patch) | |
tree | 50e80c01a35c2329110b224c41309ae4644f090d /demos | |
parent | 9134219266dcf85dcb999e4d664c325381010149 (diff) | |
download | gtk+-9ca772ac70c999f15c711a5c730ddad148985cf0.tar.gz |
Explicitely draw an opaque rectangle using the background color rather
2003-01-30 Daniel Elstner <daniel.elstner@gmx.net>
* gtk/gtkcolorsel.c (palette_paint): Explicitely draw an opaque
rectangle using the background color rather than relying on
gdk_window_clear_area(), so that the palette works properly with
pixmap themes.
* demos/gtk-demo/colorsel.c: Install an "expose_event" handler
to fill the drawing area in the background color.
Diffstat (limited to 'demos')
-rw-r--r-- | demos/gtk-demo/colorsel.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/demos/gtk-demo/colorsel.c b/demos/gtk-demo/colorsel.c index 11156cdec8..45d46e7f71 100644 --- a/demos/gtk-demo/colorsel.c +++ b/demos/gtk-demo/colorsel.c @@ -12,6 +12,27 @@ static GtkWidget *da; static GdkColor color; static GtkWidget *frame; +/* Expose callback for the drawing area + */ +static gboolean +expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data) +{ + if (widget->window) + { + GtkStyle *style; + + style = gtk_widget_get_style (widget); + + gdk_draw_rectangle (widget->window, + style->bg_gc[GTK_STATE_NORMAL], + TRUE, + event->area.x, event->area.y, + event->area.width, event->area.height); + } + + return TRUE; +} + static void change_color_callback (GtkWidget *button, gpointer data) @@ -76,8 +97,12 @@ do_colorsel (void) frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); - + da = gtk_drawing_area_new (); + + g_signal_connect (da, "expose_event", + G_CALLBACK (expose_event_callback), NULL); + /* set a minimum size */ gtk_widget_set_size_request (da, 200, 200); /* set the color */ |