From fc34b4a2e304a99932be7ca02595aa5d2de062e7 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 14 Apr 2014 17:10:25 -0700 Subject: [PATCH] DND: go back to a timeout for cancel animation Using a tick callback does not really make sense here, since we are not drawing in a window, but moving a toplevel around. https://bugzilla.gnome.org/show_bug.cgi?id=728183 --- gtk/gtkdnd.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index 9cf00b6cda..277b6aaabc 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -256,9 +256,7 @@ static void gtk_drag_selection_get (GtkWidget *widget, guint32 time, gpointer data); static void gtk_drag_anim_destroy (GtkDragAnim *anim); -static gboolean gtk_drag_anim_tick (GtkWidget *widget, - GdkFrameClock *frame_clock, - gpointer data); +static gboolean gtk_drag_anim_timeout (gpointer data); static void gtk_drag_remove_icon (GtkDragSourceInfo *info); static void gtk_drag_source_info_destroy (GtkDragSourceInfo *info); static void gtk_drag_add_update_idle (GtkDragSourceInfo *info); @@ -3807,7 +3805,7 @@ gtk_drag_drop_finished (GtkDragSourceInfo *info, * to respond really late, we still are OK. */ gtk_drag_clear_source_info (info->context); - gtk_widget_add_tick_callback (info->widget, gtk_drag_anim_tick, anim, (GDestroyNotify) gtk_drag_anim_destroy); + gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT, 17, gtk_drag_anim_timeout, anim, (GDestroyNotify) gtk_drag_anim_destroy); } } } @@ -4038,13 +4036,13 @@ gtk_drag_anim_destroy (GtkDragAnim *anim) } static gboolean -gtk_drag_anim_tick (GtkWidget *widget, - GdkFrameClock *frame_clock, - gpointer data) +gtk_drag_anim_timeout (gpointer data) { GtkWidget *icon_window; GtkDragAnim *anim = data; GtkDragSourceInfo *info = anim->info; + GtkWidget *widget = info->widget; + GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (widget); gint64 current_time = gdk_frame_clock_get_frame_time (frame_clock); int hot_x, hot_y; double f = (current_time - anim->start_time) / (double) ANIM_TIME;