summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@l3000.localdomain>2010-09-25 23:50:27 -0400
committerSøren Sandmann Pedersen <ssp@l3000.localdomain>2010-09-27 13:43:20 -0400
commit8e8c2791eaee8c7e24a3b7ce4783f376b41973f1 (patch)
treec65754e3a72b68c801e0933a3a5a396549419218
parent943854b57d12960a19f24dd6741ba4fda8c66ad7 (diff)
Better expose handling
-rw-r--r--gtk-utils.c14
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 ();
}