aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/main.c b/main.c
index 211de8b..e875c0a 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,5 @@
#include <gtk-3.0/gtk/gtk.h>
+#define TIMEOUT 50
GtkWidget *window;
GtkWidget *image;
@@ -18,8 +19,10 @@ static gboolean key_press(GtkWindow *window, gpointer data)
return TRUE;
}
-void configure_callback(GtkWindow *window, GdkEvent *event, gpointer data)
+gboolean resize_done(gpointer data)
{
+ guint *id = data;
+ *id = 0;
gint win_width, win_height;
gint new_pixbuf_width, new_pixbuf_height;
gtk_window_get_size(GTK_WINDOW(window), &win_width, &win_height);
@@ -54,6 +57,16 @@ void configure_callback(GtkWindow *window, GdkEvent *event, gpointer data)
image = gtk_image_new_from_pixbuf(GDK_PIXBUF(curr_pixbuf));
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(image));
gtk_widget_show_all(GTK_WIDGET(window));
+ return FALSE;
+}
+
+gboolean configure_callback(GtkWindow *window, GdkEvent *event, gpointer data)
+{
+ static guint id = 0;
+ if (id)
+ g_source_remove(id);
+ id = g_timeout_add(TIMEOUT, resize_done, &id);
+ return FALSE;
}
static void activate(GtkApplication *app, gpointer user_data)