- if ((!wd->autosave) || (!wd->file)) return;
- wd->delay_write = ecore_timer_add(2.0, _delay_write, data);
+
+ if ((wd->api) && (wd->api->obj_hidemenu))
+ wd->api->obj_hidemenu(data);
+
+ if ((wd->autosave) && (wd->file))
+ wd->delay_write = ecore_timer_add(2.0, _delay_write, data);
+
+ /* callback - this could call callbacks that delete the entry... thus...
+ * any access to wd after this could be invalid */
+ evas_object_smart_callback_call(data, event, NULL);