From 6dc66ea78f2b9c6725d2e5045fbb391292285f2c Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 29 Jan 2022 05:17:00 +0100 Subject: [PATCH] Prioritize self-deletion This addresses the issue described in 83719fba1ab22db0. First process all queued self_delete() requests before scheduling Editor::redisplay_track_views() which uses PRIORITY_DEFAULT. --- libs/gtkmm2ext/gtkmm2ext/doi.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/gtkmm2ext/gtkmm2ext/doi.h b/libs/gtkmm2ext/gtkmm2ext/doi.h index 50b35f021a..eda7406235 100644 --- a/libs/gtkmm2ext/gtkmm2ext/doi.h +++ b/libs/gtkmm2ext/gtkmm2ext/doi.h @@ -34,10 +34,10 @@ template /*LIBGTKMM2EXT_API*/ gint idle_delete (T *obj) { delete obj; return FALSE; } template /*LIBGTKMM2EXT_API*/ void delete_when_idle (T *obj) { - Glib::signal_idle().connect (sigc::bind (sigc::ptr_fun (idle_delete), obj)); + Glib::signal_idle().connect (sigc::bind (sigc::ptr_fun (idle_delete), obj), Glib::PRIORITY_HIGH_IDLE); } template /*LIBGTKMM2EXT_API*/ gint delete_on_unmap (GdkEventAny *ignored, T *obj) { - Glib::signal_idle().connect (sigc::bind (sigc::ptr_fun (idle_delete), obj)); + Glib::signal_idle().connect (sigc::bind (sigc::ptr_fun (idle_delete), obj), Glib::PRIORITY_HIGH_IDLE); return FALSE; }