diff options
author | Søren Sandmann Pedersen <ssp@l3000.localdomain> | 2010-09-25 23:50:27 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@l3000.localdomain> | 2010-09-27 13:43:20 -0400 |
commit | 8e8c2791eaee8c7e24a3b7ce4783f376b41973f1 (patch) | |
tree | c65754e3a72b68c801e0933a3a5a396549419218 | |
parent | 943854b57d12960a19f24dd6741ba4fda8c66ad7 (diff) |
Better expose handling
-rw-r--r-- | gtk-utils.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gtk-utils.c b/gtk-utils.c index d499f11..11f64f9 100644 --- a/gtk-utils.c +++ b/gtk-utils.c @@ -80,7 +80,7 @@ pixbuf_from_buffer (complex_t *buffer, int n) bb = 0 + 0.3 * g; int x = drand48() > 0.5; - + pb[0] = SADD (rr, 0.5 * vi); pb[1] = SADD (gg, - 0.5 * vi); pb[2] = SADD (bb, 2 * vi); @@ -130,7 +130,7 @@ on_expose (GtkWidget *widget, GdkEventExpose *expose, gpointer data) for (j = 0; j < dwidth; j += pwidth) { gdk_draw_pixbuf (widget->window, NULL, - pixbuf, 0, 0, i, j, pwidth, pheight, + pixbuf, 0, 0, j, i, pwidth, pheight, GDK_RGB_DITHER_NONE, 0, 0); @@ -142,7 +142,7 @@ on_expose (GtkWidget *widget, GdkEventExpose *expose, gpointer data) void show_image (const char *name, complex_t *image, int n) { - GtkWidget *window; + GtkWidget *window, *da; GdkPixbuf *pixbuf; int argc; char **argv; @@ -155,14 +155,18 @@ show_image (const char *name, complex_t *image, int n) window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + da = gtk_drawing_area_new (); + + gtk_container_add (window, da); + gtk_window_set_default_size (GTK_WINDOW (window), SIZE, SIZE); pixbuf = pixbuf_from_buffer (image, n); - g_signal_connect (window, "expose_event", G_CALLBACK (on_expose), pixbuf); + g_signal_connect (da, "expose_event", G_CALLBACK (on_expose), pixbuf); g_signal_connect (window, "delete_event", G_CALLBACK (gtk_main_quit), NULL); - gtk_widget_show (window); + gtk_widget_show_all (window); gtk_main (); } |