forked from AuroraMiddleware/gtk
stackswitcher: clear timer when widget id disposed
If the widget is disposed while the cursor has a drag timeout queued, it can activate after finalization.
This commit is contained in:
parent
80c33ca2dd
commit
c2ca246aee
@ -225,6 +225,13 @@ gtk_stack_switcher_switch_timeout (gpointer data)
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
clear_timer (gpointer data)
|
||||
{
|
||||
if (data)
|
||||
g_source_remove (GPOINTER_TO_UINT (data));
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_stack_switcher_drag_enter (GtkDropControllerMotion *motion,
|
||||
double x,
|
||||
@ -239,7 +246,7 @@ gtk_stack_switcher_drag_enter (GtkDropControllerMotion *motion,
|
||||
gtk_stack_switcher_switch_timeout,
|
||||
button);
|
||||
g_source_set_name_by_id (switch_timer, "[gtk] gtk_stack_switcher_switch_timeout");
|
||||
g_object_set_data (G_OBJECT (button), "-gtk-switch-timer", GUINT_TO_POINTER (switch_timer));
|
||||
g_object_set_data_full (G_OBJECT (button), "-gtk-switch-timer", GUINT_TO_POINTER (switch_timer), clear_timer);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user