discomfitor pushed a commit to branch master.

http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=d0e3824adf45082aaa88b6acb5d195a95ed167a5

commit d0e3824adf45082aaa88b6acb5d195a95ed167a5
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed Nov 11 17:38:07 2015 -0500

    redo "active" signalling for zoom effect to be more easily themable
---
 e-module-desksanity.edc | 14 +++++---------
 src/zoom.c              | 29 ++++++++++++++++++++---------
 2 files changed, 25 insertions(+), 18 deletions(-)

diff --git a/e-module-desksanity.edc b/e-module-desksanity.edc
index ad4862f..01f8ddd 100644
--- a/e-module-desksanity.edc
+++ b/e-module-desksanity.edc
@@ -446,7 +446,7 @@ collections {
                rel2.to: "spacer";
                rel1.offset: 10 10;
                rel2.offset: -10 -10;
-               link.base: "mouse,out" "events";
+               link.base: "e,state,inactive" "e";
                link.transition: LINEAR 0.2;
                //link.after: "idle";
             }
@@ -456,7 +456,7 @@ collections {
                rel1.relative: -0.01 -0.01;
                rel2.relative: 1.01 1.01;
                rel2.offset: -1 -1;
-               link.base: "mouse,in" "events";
+               link.base: "e,state,active" "e";
                link.transition: LINEAR 0.2;
             }
             desc { "idle1"; inherit: "default";
@@ -506,13 +506,13 @@ collections {
             desc {
                rel1.offset: -9999 -9999;
                rel2.offset: 9999 9999;
-               color: 255 255 255 200;
-               link.base: "mouse,out" "events";
+               color: 200 200 200 200;
+               link.base: "e,state,inactive" "e";
                link.transition: LINEAR 0.2;
             }
             desc { "active"; inherit: "default";
                color: 255 255 255 255;
-               link.base: "mouse,in" "events";
+               link.base: "e,state,active" "e";
                link.transition: LINEAR 0.2;
             }
          }
@@ -599,15 +599,11 @@ collections {
                action: SIGNAL_EMIT "e,action,activate" "e";
             }
             program { signal: "mouse,in"; source: "events";
-               action: SIGNAL_EMIT "e,state,active" "e";
                sequence {
                   action: ACTION_STOP;
                   targets: "idle" "idle2" "idle3" "idle4";
                }
             }
-            program { signal: "mouse,out"; source: "events";
-               action: SIGNAL_EMIT "e,state,inactive" "e";
-            }
          }
       }
    }
diff --git a/src/zoom.c b/src/zoom.c
index de9740b..0615172 100644
--- a/src/zoom.c
+++ b/src/zoom.c
@@ -100,9 +100,26 @@ _client_mouse_down(E_Client *ec EINA_UNUSED, Evas *e 
EINA_UNUSED, Evas_Object *o
 }
 
 static void
+_client_mouse_out(E_Client *ec EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *ev EINA_UNUSED)
+{
+   if (current)
+     
edje_object_signal_emit(evas_object_smart_parent_get(eina_list_data_get(current)),
 "e,state,inactive", "e");
+}
+
+static void
 _client_mouse_in(E_Client *ec EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *ev EINA_UNUSED)
 {
+   Eina_List *l;
+   Evas_Object *zoom_obj, *m;
+
    evas_object_raise(obj);
+   m = edje_object_part_swallow_get(obj, "e.swallow.client");
+   if (current && (eina_list_data_get(current) != m))
+     
edje_object_signal_emit(evas_object_smart_parent_get(eina_list_data_get(current)),
 "e,state,inactive", "e");
+   zoom_obj = evas_object_data_get(obj, "__DSZOOMOBJ");
+   l = evas_object_data_get(zoom_obj, "__DSCLIENTS");
+   current = eina_list_data_find_list(l, m);
+   edje_object_signal_emit(obj, "e,state,active", "e");
 }
 
 static void
@@ -178,12 +195,6 @@ _client_activate(void *data, Evas_Object *obj EINA_UNUSED, 
const char *sig EINA_
 }
 
 static void
-_client_active(void *data EINA_UNUSED, Evas_Object *obj, const char *sig 
EINA_UNUSED, const char *src EINA_UNUSED)
-{
-   evas_object_raise(obj);
-}
-
-static void
 _zoomobj_pack_client(const E_Client *ec, const E_Zone *zone, Evas_Object *tb, 
Evas_Object *m, unsigned int id, unsigned int cols)
 {
    int w, h;
@@ -225,10 +236,10 @@ _zoomobj_add_client(Evas_Object *zoom_obj, Eina_List *l, 
Evas_Object *m)
    evas_object_event_callback_add(elm_layout_edje_get(e), 
EVAS_CALLBACK_MOUSE_DOWN, (Evas_Object_Event_Cb)_client_mouse_down, ec);
    evas_object_event_callback_add(elm_layout_edje_get(e), 
EVAS_CALLBACK_MOUSE_UP, (Evas_Object_Event_Cb)_client_mouse_up, ec);
    evas_object_event_callback_add(elm_layout_edje_get(e), 
EVAS_CALLBACK_MOUSE_IN, (Evas_Object_Event_Cb)_client_mouse_in, ec);
+   evas_object_event_callback_add(elm_layout_edje_get(e), 
EVAS_CALLBACK_MOUSE_OUT, (Evas_Object_Event_Cb)_client_mouse_out, ec);
    if ((!zmw) && (!zmh))
      edje_object_size_min_calc(elm_layout_edje_get(e), &zmw, &zmh);
    elm_layout_signal_callback_add(e, "e,action,activate", "e", 
_client_activate, ec);
-   elm_layout_signal_callback_add(e, "e,state,active", "e", _client_active, 
ec);
    if (e_client_focused_get() == ec)
      {
         elm_layout_signal_emit(e, "e,state,focused", "e");
@@ -294,8 +305,8 @@ _zoom_key(void *d EINA_UNUSED, int t EINA_UNUSED, 
Ecore_Event_Key *ev)
         E_Zone *zone;
 
         e = evas_object_smart_parent_get(eina_list_data_get(n));
-        edje_object_signal_emit(e, "e,state,focused", "e");
-        
edje_object_signal_emit(evas_object_smart_parent_get(eina_list_data_get(current)),
 "e,state,unfocused", "e");
+        edje_object_signal_emit(e, "e,state,active", "e");
+        
edje_object_signal_emit(evas_object_smart_parent_get(eina_list_data_get(current)),
 "e,state,inactive", "e");
         current = n;
         evas_object_geometry_get(e, &x, &y, &w, &h);
         scr = elm_object_part_content_get(evas_object_data_get(e, 
"__DSZOOMOBJ"), "e.swallow.layout");

-- 


Reply via email to