en->input_panel_enable = EINA_TRUE;
#ifdef HAVE_ECORE_IMF
- ecore_imf_init();
+ _edje_need_imf();
edje_object_signal_callback_add(rp->edje->obj, "focus,part,in", rp->part->name, _edje_entry_focus_in_cb, rp);
edje_object_signal_callback_add(rp->edje->obj, "focus,part,out", rp->part->name, _edje_entry_focus_out_cb, rp);
edje_object_signal_callback_del(rp->edje->obj, "focus,part,in", rp->part->name, _edje_entry_focus_in_cb);
edje_object_signal_callback_del(rp->edje->obj, "focus,part,out", rp->part->name, _edje_entry_focus_out_cb);
- ecore_imf_shutdown();
}
#endif
_compose_seq_reset(en);
int _edje_default_log_dom = -1;
Eina_Mempool *_edje_real_part_mp = NULL;
Eina_Mempool *_edje_real_part_state_mp = NULL;
+static Eina_Bool _need_imf = EINA_FALSE;
/*============================================================================*
* API *
_edje_text_class_hash_free();
_edje_edd_shutdown();
+#ifdef HAVE_ECORE_IMF
+ if (_need_imf)
+ ecore_imf_shutdown();
+#endif
+
#ifdef HAVE_EIO
eio_shutdown();
#endif
ed->references--;
if (ed->references == 0) _edje_del(ed);
}
+
+void
+_edje_need_imf(void)
+{
+ if (_need_imf) return;
+#ifdef HAVE_ECORE_IMF
+ _need_imf = EINA_TRUE;
+ ecore_imf_init();
+#endif
+}
void _edje_module_init(void);
void _edje_module_shutdown(void);
+void _edje_need_imf(void);
+
static inline Eina_Bool
edje_program_is_strncmp(const char *str)
{