Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/pager


Modified Files:
        e_mod_main.c e_mod_main.h 


Log Message:
Check if the event is relative to the current zone.
Add Desk Show event.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -3 -r1.50 -r1.51
--- e_mod_main.c        13 Feb 2005 12:32:04 -0000      1.50
+++ e_mod_main.c        15 Feb 2005 12:15:22 -0000      1.51
@@ -6,6 +6,7 @@
 
 /* TODO
  * which options should be in main menu, and which in face menu?
+ * check if a new desk is in the current zone
  */
 
 /* module private routines */
@@ -44,6 +45,7 @@
 static int         _pager_face_cb_event_border_unstick(void *data, int type, 
void *event);
 static int         _pager_face_cb_event_border_desk_set(void *data, int type, 
void *event);
 static int         _pager_face_cb_event_zone_desk_count_set(void *data, int 
type, void *event);
+static int         _pager_face_cb_event_desk_show(void *data, int type, void 
*event);
 static void        _pager_face_cb_menu_enabled(void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void        _pager_face_cb_menu_scale(void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void        _pager_face_cb_menu_resize_none(void *data, E_Menu *m, 
E_Menu_Item *mi);
@@ -316,6 +318,9 @@
    face->ev_handler_zone_desk_count_set =
       ecore_event_handler_add(E_EVENT_ZONE_DESK_COUNT_SET,
                              _pager_face_cb_event_zone_desk_count_set, face);
+   face->ev_handler_desk_show =
+      ecore_event_handler_add(E_EVENT_DESK_SHOW,
+                             _pager_face_cb_event_desk_show, face);
 
    _pager_face_zone_set(face, zone);
 
@@ -358,6 +363,7 @@
    ecore_event_handler_del(face->ev_handler_border_unstick);
    ecore_event_handler_del(face->ev_handler_border_desk_set);
    ecore_event_handler_del(face->ev_handler_zone_desk_count_set);
+   ecore_event_handler_del(face->ev_handler_desk_show);
 
    e_object_del(E_OBJECT(face->menu));
 
@@ -760,9 +766,6 @@
               {
                  desk->current = 1;
                  e_desk_show(desk->desk);
-                 evas_object_move(face->screen,
-                                  face->fx + xpos * face->fw,
-                                  face->fy + ypos * face->fh);
               }
             else
               {
@@ -878,6 +881,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
    for (desks = face->desks; desks; desks = desks->next)
      {
        desk = desks->data;
@@ -905,6 +912,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
    for (desks = face->desks; desks; desks = desks->next)
      {
        desk = desks->data;
@@ -931,6 +942,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
 #if 0
    if (_pager_window_find(face, ev->border))
      {
@@ -962,6 +977,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
    for (desks = face->desks; desks; desks = desks->next)
      {
        desk = desks->data;
@@ -990,6 +1009,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
    for (desks = face->desks; desks; desks = desks->next)
      {
        desk = desks->data;
@@ -1019,6 +1042,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
    for (desks = face->desks; desks; desks = desks->next)
      {
        desk = desks->data;
@@ -1049,6 +1076,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
    for (desks = face->desks; desks; desks = desks->next)
      {
        desk = desks->data;
@@ -1073,6 +1104,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
 
    for (desks = face->desks; desks; desks = desks->next)
      {
@@ -1105,6 +1140,10 @@
 
    face = data;
    ev = event;
+   /* Only care about windows in our zone */
+   if (face->zone != ev->border->zone)
+     return 1;
+
    if (ev->border->sticky)
      return 1;
 
@@ -1226,6 +1265,36 @@
    return 1;
 }
 
+static int
+_pager_face_cb_event_desk_show(void *data, int type, void *event)
+{
+   Pager_Face        *face;
+   Pager_Desk        *desk;
+   E_Event_Desk_Show *ev;
+   Evas_List         *desks;
+
+   face = data;
+   ev = event;
+   /* Only care if this desk is in our zone */
+   if (face->zone != ev->desk->zone)
+     return 1;
+
+   for (desks = face->desks; desks; desks = desks->next)
+     {
+       desk = desks->data;
+       if (desk->desk == ev->desk)
+         {
+            desk->current = 1;
+            evas_object_move(face->screen,
+                             face->fx + (face->fw * desk->xpos),
+                             face->fy + (face->fh * desk->ypos));
+         }
+       else
+         desk->current = 0;
+     }
+   return 1;
+}
+
 static void
 _pager_face_cb_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- e_mod_main.h        10 Feb 2005 15:19:33 -0000      1.14
+++ e_mod_main.h        15 Feb 2005 12:15:22 -0000      1.15
@@ -67,6 +67,7 @@
    Ecore_Event_Handler *ev_handler_border_unstick;
    Ecore_Event_Handler *ev_handler_border_desk_set;
    Ecore_Event_Handler *ev_handler_zone_desk_count_set;
+   Ecore_Event_Handler *ev_handler_desk_show;
 };
 
 struct _Pager_Desk




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to