aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornirav <nirav@teisuu.com>2018-08-24 16:35:12 +0530
committerDandelion <nirav@teisuu.com>2018-08-24 16:36:49 +0530
commit5e19727ce2a0adf0f637f6b2eb985954cb53abdf (patch)
treefb3d3098e72a3dfdf639f01452a7ffe470376830
parentb4bda2a8177a33b2a3a302c7652d92deb6b785e5 (diff)
downloadim-5e19727ce2a0adf0f637f6b2eb985954cb53abdf.tar.gz
im-5e19727ce2a0adf0f637f6b2eb985954cb53abdf.zip
Added timeout for resize event
-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)