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

Reply via email to