diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-07-30 01:42:15 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-07-30 01:42:15 +0900 |
commit | 67246cddcb8559d47d18134b7eb3468046846fd5 (patch) | |
tree | 48fd0887fda5a52f5259e3ba864ca83b969abde1 /src/modules | |
parent | 085623006d172d07c2eec0694845b564d8de3f12 (diff) | |
download | efl-67246cddcb8559d47d18134b7eb3468046846fd5.tar.gz |
ecore imf - ibus - fix destroy/disconnect handling that crashes
restart e or have ibus input get destroyed and come back... the ibus
module will do bad things to its pants... because the wrong things
were passed to the signal callbacks... this fixers that along with
ensuring a freed string ptr is NULL.
@fix
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/ecore_imf/ibus/ibus_imcontext.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/modules/ecore_imf/ibus/ibus_imcontext.c b/src/modules/ecore_imf/ibus/ibus_imcontext.c index 40c9b6c6b3..9ed2501800 100644 --- a/src/modules/ecore_imf/ibus/ibus_imcontext.c +++ b/src/modules/ecore_imf/ibus/ibus_imcontext.c @@ -338,7 +338,7 @@ ecore_imf_context_ibus_add(Ecore_IMF_Context *ctx) if (ibus_bus_is_connected(_bus)) _ecore_imf_context_ibus_create(ibusimcontext); - g_signal_connect(_bus, "connected", G_CALLBACK (_ecore_imf_context_ibus_bus_connected_cb), ctx); + g_signal_connect(_bus, "connected", G_CALLBACK (_ecore_imf_context_ibus_bus_connected_cb), ibusimcontext); } EAPI void @@ -353,7 +353,7 @@ ecore_imf_context_ibus_del(Ecore_IMF_Context *ctx) g_signal_handlers_disconnect_by_func(_bus, G_CALLBACK(_ecore_imf_context_ibus_bus_connected_cb), - ctx); + ibusimcontext); if (ibusimcontext->ibuscontext) ibus_proxy_destroy((IBusProxy *)ibusimcontext->ibuscontext); @@ -361,6 +361,7 @@ ecore_imf_context_ibus_del(Ecore_IMF_Context *ctx) // release preedit if (ibusimcontext->preedit_string) free(ibusimcontext->preedit_string); + ibusimcontext->preedit_string = NULL; if (ibusimcontext->preedit_attrs) { |