diff options
author | nirav <nirav@teisuu.com> | 2018-08-24 16:35:12 +0530 |
---|---|---|
committer | Dandelion <nirav@teisuu.com> | 2018-08-24 16:36:49 +0530 |
commit | 5e19727ce2a0adf0f637f6b2eb985954cb53abdf (patch) | |
tree | fb3d3098e72a3dfdf639f01452a7ffe470376830 | |
parent | b4bda2a8177a33b2a3a302c7652d92deb6b785e5 (diff) | |
download | im-5e19727ce2a0adf0f637f6b2eb985954cb53abdf.tar.gz im-5e19727ce2a0adf0f637f6b2eb985954cb53abdf.zip |
Added timeout for resize event
-rw-r--r-- | main.c | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -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) |