From c115148f4a305f3a55f1fd1ad2e9f4fa1569ad6a Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Wed, 29 Apr 2026 12:50:24 +0700 Subject: [PATCH] gadget: explicitly remove mouse-down callback on shutdown evas_object_del would clean up the callback as a side effect, but matching every add with an explicit del avoids relying on that ordering and keeps the lifetime obvious to readers. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/e_mod_gadget.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/e_mod_gadget.c b/src/e_mod_gadget.c index 1256e2f..62cac2c 100644 --- a/src/e_mod_gadget.c +++ b/src/e_mod_gadget.c @@ -201,6 +201,9 @@ _gc_shutdown(E_Gadcon_Client *gcc) Instance *inst = gcc->data; if (!inst) return; _instances = eina_list_remove(_instances, inst); + if (inst->o_base) + evas_object_event_callback_del_full(inst->o_base, EVAS_CALLBACK_MOUSE_DOWN, + _on_mouse_down, inst); if (inst->o_icon) evas_object_del(inst->o_icon); if (inst->o_base) evas_object_del(inst->o_base); E_FREE(inst);