From 5e19727ce2a0adf0f637f6b2eb985954cb53abdf Mon Sep 17 00:00:00 2001 From: nirav Date: Fri, 24 Aug 2018 16:35:12 +0530 Subject: Added timeout for resize event --- main.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 211de8b..e875c0a 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,5 @@ #include +#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) -- cgit v1.2.3