Merge branch 'wip/chergert/fix-use-after-free-switcher' into 'master'

stackswitcher: clear timer when widget id disposed

See merge request GNOME/gtk!3621
This commit is contained in:
Matthias Clasen 2021-06-02 20:21:57 +00:00
commit a1789ee2b8

View File

@ -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);
}
}