Enlightenment CVS committal Author : cmarcelo Project : e17 Module : libs/etk
Dir : e17/libs/etk/src/lib Modified Files: etk_entry.c etk_entry.h Log Message: Etk_Entry: deleting ecore event handlers when unrealizing. =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_entry.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -3 -r1.48 -r1.49 --- etk_entry.c 22 Nov 2007 14:55:43 -0000 1.48 +++ etk_entry.c 12 Dec 2007 11:23:43 -0000 1.49 @@ -372,6 +372,8 @@ entry->primary_image_highlight = ETK_FALSE; entry->secondary_image_highlight = ETK_FALSE; entry->imf_context = NULL; + entry->imf_ee_handler_commit = NULL; + entry->imf_ee_handler_delete = NULL; entry->text = NULL; entry->internal_entry = etk_widget_new(ETK_WIDGET_TYPE, "repeat-mouse-events", ETK_TRUE, @@ -590,10 +592,11 @@ ecore_imf_context_client_canvas_set(entry->imf_context, evas); ecore_imf_context_retrieve_surrounding_callback_set(entry->imf_context, _etk_entry_imf_retrieve_surrounding_cb, entry); - ecore_event_handler_add(ECORE_IMF_EVENT_COMMIT, - _etk_entry_imf_event_commit_cb, entry); - ecore_event_handler_add(ECORE_IMF_EVENT_DELETE_SURROUNDIND, - _etk_entry_imf_event_delete_surrounding_cb, entry); + entry->imf_ee_handler_commit = ecore_event_handler_add( + ECORE_IMF_EVENT_COMMIT, _etk_entry_imf_event_commit_cb, entry); + entry->imf_ee_handler_delete = ecore_event_handler_add( + ECORE_IMF_EVENT_DELETE_SURROUNDIND, /* XXX: typo in original lib? */ + _etk_entry_imf_event_delete_surrounding_cb, entry); ecore_imf_context_input_mode_set(entry->imf_context, entry->password_mode ? ECORE_IMF_INPUT_MODE_INVISIBLE : @@ -668,6 +671,18 @@ if (entry->imf_context) { + if (entry->imf_ee_handler_commit) + { + ecore_event_handler_del(entry->imf_ee_handler_commit); + entry->imf_ee_handler_commit = NULL; + } + + if (entry->imf_ee_handler_delete) + { + ecore_event_handler_del(entry->imf_ee_handler_delete); + entry->imf_ee_handler_delete = NULL; + } + ecore_imf_context_del(entry->imf_context); entry->imf_context = NULL; } =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_entry.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- etk_entry.h 19 Nov 2007 18:32:11 -0000 1.20 +++ etk_entry.h 12 Dec 2007 11:23:43 -0000 1.21 @@ -2,6 +2,7 @@ #ifndef _ETK_ENTRY_H_ #define _ETK_ENTRY_H_ +#include <Ecore.h> #include <Ecore_IMF.h> #include <Evas.h> @@ -57,6 +58,9 @@ Etk_Color highlight_color; int image_interspace; + + Ecore_Event_Handler *imf_ee_handler_commit; + Ecore_Event_Handler *imf_ee_handler_delete; Etk_Bool password_mode:1; Etk_Bool selection_dragging:1; ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs