Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_callbacks.c edje_load.c edje_private.h edje_util.c 


Log Message:


1. removed mosue_events 0 on swallows - as this now changes behavior. normalise
2. gustavo's patch.

===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_callbacks.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- edje_callbacks.c    18 Dec 2006 08:50:25 -0000      1.23
+++ edje_callbacks.c    4 Apr 2007 12:51:51 -0000       1.24
@@ -364,3 +364,57 @@
    free(pp);
    return 0;
 }
+
+void
+_edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp)
+{
+   evas_object_event_callback_add(obj,
+                                  EVAS_CALLBACK_MOUSE_IN,
+                                  _edje_mouse_in_cb,
+                                  ed);
+   evas_object_event_callback_add(obj,
+                                  EVAS_CALLBACK_MOUSE_OUT,
+                                  _edje_mouse_out_cb,
+                                  ed);
+   evas_object_event_callback_add(obj,
+                                  EVAS_CALLBACK_MOUSE_DOWN,
+                                  _edje_mouse_down_cb,
+                                  ed);
+   evas_object_event_callback_add(obj,
+                                  EVAS_CALLBACK_MOUSE_UP,
+                                  _edje_mouse_up_cb,
+                                  ed);
+   evas_object_event_callback_add(obj,
+                                  EVAS_CALLBACK_MOUSE_MOVE,
+                                  _edje_mouse_move_cb,
+                                  ed);
+   evas_object_event_callback_add(obj,
+                                  EVAS_CALLBACK_MOUSE_WHEEL,
+                                  _edje_mouse_wheel_cb,
+                                  ed);
+   evas_object_data_set(obj, "real_part", rp);
+}
+
+void
+_edje_callbacks_del(Evas_Object *obj)
+{
+   evas_object_event_callback_del(obj,
+                                  EVAS_CALLBACK_MOUSE_IN,
+                                  _edje_mouse_in_cb);
+   evas_object_event_callback_del(obj,
+                                  EVAS_CALLBACK_MOUSE_OUT,
+                                  _edje_mouse_out_cb);
+   evas_object_event_callback_del(obj,
+                                  EVAS_CALLBACK_MOUSE_DOWN,
+                                  _edje_mouse_down_cb);
+   evas_object_event_callback_del(obj,
+                                  EVAS_CALLBACK_MOUSE_UP,
+                                  _edje_mouse_up_cb);
+   evas_object_event_callback_del(obj,
+                                  EVAS_CALLBACK_MOUSE_MOVE,
+                                  _edje_mouse_move_cb);
+   evas_object_event_callback_del(obj,
+                                  EVAS_CALLBACK_MOUSE_WHEEL,
+                                  _edje_mouse_wheel_cb);
+   evas_object_data_del(obj, "real_part");
+}
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_load.c,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -3 -r1.98 -r1.99
--- edje_load.c 31 Mar 2007 10:32:48 -0000      1.98
+++ edje_load.c 4 Apr 2007 12:51:51 -0000       1.99
@@ -131,31 +131,7 @@
                    {
                       if (ep->mouse_events)
                         {
-                           evas_object_event_callback_add(rp->object, 
-                                                          
EVAS_CALLBACK_MOUSE_IN,
-                                                          _edje_mouse_in_cb,
-                                                          ed);
-                           evas_object_event_callback_add(rp->object, 
-                                                          
EVAS_CALLBACK_MOUSE_OUT,
-                                                          _edje_mouse_out_cb,
-                                                          ed);
-                           evas_object_event_callback_add(rp->object, 
-                                                          
EVAS_CALLBACK_MOUSE_DOWN,
-                                                          _edje_mouse_down_cb,
-                                                          ed);
-                           evas_object_event_callback_add(rp->object, 
-                                                          
EVAS_CALLBACK_MOUSE_UP,
-                                                          _edje_mouse_up_cb,
-                                                          ed);
-                           evas_object_event_callback_add(rp->object, 
-                                                          
EVAS_CALLBACK_MOUSE_MOVE,
-                                                          _edje_mouse_move_cb,
-                                                          ed);
-                           evas_object_event_callback_add(rp->object, 
-                                                          
EVAS_CALLBACK_MOUSE_WHEEL,
-                                                          _edje_mouse_wheel_cb,
-                                                          ed);
-                           evas_object_data_set(rp->object, "real_part", rp);
+                           _edje_callbacks_add(rp->object, ed, rp);
                            if (ep->repeat_events)
                              evas_object_repeat_events_set(rp->object, 1);
                         }
@@ -537,25 +513,8 @@
             ed->parts = evas_list_remove(ed->parts, rp);
             if (rp->object)
               {
-                 evas_object_event_callback_del(rp->object, 
-                                                EVAS_CALLBACK_MOUSE_IN,
-                                                _edje_mouse_in_cb);
-                 evas_object_event_callback_del(rp->object, 
-                                                EVAS_CALLBACK_MOUSE_OUT,
-                                                _edje_mouse_out_cb);
-                 evas_object_event_callback_del(rp->object, 
-                                                EVAS_CALLBACK_MOUSE_DOWN,
-                                           _edje_mouse_down_cb);
-                 evas_object_event_callback_del(rp->object, 
-                                                EVAS_CALLBACK_MOUSE_UP,
-                                                _edje_mouse_up_cb);
-                 evas_object_event_callback_del(rp->object, 
-                                                EVAS_CALLBACK_MOUSE_MOVE,
-                                                _edje_mouse_move_cb);
-                 evas_object_event_callback_del(rp->object, 
-                                                EVAS_CALLBACK_MOUSE_WHEEL,
-                                                _edje_mouse_wheel_cb);
                  _edje_text_real_part_on_del(ed, rp);
+                 _edje_callbacks_del(rp->object);
                  evas_object_del(rp->object);
               }
             if (rp->swallowed_object)
@@ -565,6 +524,8 @@
                                                 EVAS_CALLBACK_FREE,
                                                 
_edje_object_part_swallow_free_cb);
                  evas_object_clip_unset(rp->swallowed_object);
+                 if (rp->part->mouse_events)
+                    _edje_callbacks_del(rp->swallowed_object);
                  rp->swallowed_object = NULL;
 /* I think it would be better swallowed objects dont get deleted */
 /*               evas_object_del(rp->swallowed_object);*/
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -3 -r1.118 -r1.119
--- edje_private.h      30 Mar 2007 23:39:41 -0000      1.118
+++ edje_private.h      4 Apr 2007 12:51:51 -0000       1.119
@@ -912,6 +912,8 @@
 void  _edje_mouse_wheel_cb(void *data, Evas * e, Evas_Object * obj, void 
*event_info);
 int   _edje_timer_cb(void *data);
 int   _edje_pending_timer_cb(void *data);
+void  _edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp);
+void  _edje_callbacks_del(Evas_Object *obj);
 
 void  _edje_edd_setup(void);
 void  _edje_edd_free(void);
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -3 -r1.90 -r1.91
--- edje_util.c 4 Apr 2007 12:46:44 -0000       1.90
+++ edje_util.c 4 Apr 2007 12:51:51 -0000       1.91
@@ -785,6 +785,8 @@
                                       _edje_object_part_swallow_free_cb);
        evas_object_clip_unset(rp->swallowed_object);
        evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part");
+        if (rp->part->mouse_events)
+          _edje_callbacks_del(rp->swallowed_object);
        rp->swallowed_object = NULL;
      }
    if (!obj_swallow) return;
@@ -845,6 +847,17 @@
        rp->swallow_params.aspect.h = ah;
        evas_object_data_set(rp->swallowed_object, "\377 edje.swallowing_part", 
rp);
      }
+
+   if (rp->part->mouse_events)
+     {
+        _edje_callbacks_add(obj_swallow, ed, rp);
+       if (rp->part->repeat_events)
+           evas_object_repeat_events_set(obj_swallow, 1);
+     }
+   else
+     evas_object_pass_events_set(obj_swallow, 1);
+
+
    ed->dirty = 1;
    _edje_recalc(ed);
 }
@@ -1004,6 +1017,10 @@
                                            _edje_object_part_swallow_free_cb);
             evas_object_clip_unset(rp->swallowed_object);
             evas_object_data_del(rp->swallowed_object, "\377 
edje.swallowing_part");
+
+             if (rp->part->mouse_events)
+               _edje_callbacks_del(rp->swallowed_object);
+
             rp->swallowed_object = NULL;
             rp->swallow_params.min.w = 0;
             rp->swallow_params.min.h = 0;



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to