Enlightenment CVS committal

Author  : urandom
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_actions.c e_desk.c e_desk.h 


Log Message:
make deskshow as a function. add an event for it

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_actions.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -3 -r1.74 -r1.75
--- e_actions.c 21 Jul 2006 00:46:40 -0000      1.74
+++ e_actions.c 22 Jul 2006 22:25:04 -0000      1.75
@@ -1430,38 +1430,13 @@
 /***************************************************************************/
 ACT_FN_GO(desk_deskshow_toggle)
 {
-   E_Border *bd;
-   E_Border_List *bl;
    E_Zone *zone;
-   E_Desk *desk;
 
    zone = _e_actions_zone_get(obj);
    if (!zone) zone = e_util_zone_current_get(e_manager_current_get());
    if (zone)
      {
-       desk = e_desk_current_get(zone);
-       bl = e_container_border_list_first(zone->container);
-       while ((bd = e_container_border_list_next(bl))) 
-         {
-            if (bd->desk == desk)
-              {
-                 if (desk->deskshow_toggle)
-                   {
-                      if (bd->deskshow) e_border_uniconify(bd);
-                      bd->deskshow = 0;
-                   }
-                 else
-                   {
-                      if (bd->iconic) continue;
-                      if (bd->client.netwm.state.skip_taskbar) continue;
-                      if (bd->user_skip_winlist) continue;
-                      e_border_iconify(bd);
-                      bd->deskshow = 1;
-                   }
-              }
-         }
-       desk->deskshow_toggle = desk->deskshow_toggle ? 0 : 1;
-       e_container_border_list_free(bl);
+       e_desk_deskshow(zone);
      }
 }
 /***************************************************************************/
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_desk.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- e_desk.c    7 Jun 2006 23:30:12 -0000       1.60
+++ e_desk.c    22 Jul 2006 22:25:04 -0000      1.61
@@ -10,15 +10,18 @@
 
 static void _e_desk_free(E_Desk *desk);
 static void _e_border_event_desk_show_free(void *data, void *ev);
+static void _e_border_event_desk_deskshow_free(void *data, void *ev);
 static void _e_border_event_desk_name_change_free(void *data, void *ev);
 
 EAPI int E_EVENT_DESK_SHOW = 0;
+EAPI int E_EVENT_DESK_DESKSHOW = 0;
 EAPI int E_EVENT_DESK_NAME_CHANGE = 0;
 
 EAPI int
 e_desk_init(void)
 {
    E_EVENT_DESK_SHOW = ecore_event_type_new();
+   E_EVENT_DESK_DESKSHOW = ecore_event_type_new();
    E_EVENT_DESK_NAME_CHANGE = ecore_event_type_new();
    return 1;
 }
@@ -254,6 +257,47 @@
 }
 
 EAPI void
+e_desk_deskshow(E_Zone *zone)
+{
+   E_Border *bd;
+   E_Border_List *bl;
+   E_Desk *desk;
+   E_Event_Desk_Show *ev;
+
+   E_OBJECT_CHECK(zone);
+   E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
+
+   desk = e_desk_current_get(zone);
+   bl = e_container_border_list_first(zone->container);
+   while ((bd = e_container_border_list_next(bl))) 
+     {
+       if (bd->desk == desk)
+         {
+            if (desk->deskshow_toggle)
+              {
+                 if (bd->deskshow) e_border_uniconify(bd);
+                 bd->deskshow = 0;
+              }
+            else
+              {
+                 if (bd->iconic) continue;
+                 if (bd->client.netwm.state.skip_taskbar) continue;
+                 if (bd->user_skip_winlist) continue;
+                 e_border_iconify(bd);
+                 bd->deskshow = 1;
+              }
+         }
+     }
+   desk->deskshow_toggle = desk->deskshow_toggle ? 0 : 1;
+   e_container_border_list_free(bl);
+   ev = E_NEW(E_Event_Desk_Show, 1);
+   ev->desk = desk;
+   e_object_ref(E_OBJECT(desk));
+   ecore_event_add(E_EVENT_DESK_DESKSHOW, ev, 
+        _e_border_event_desk_deskshow_free, NULL);
+}
+
+EAPI void
 e_desk_last_focused_focus(E_Desk *desk)
 {
    Evas_List *l;
@@ -408,6 +452,16 @@
 
 static void
 _e_border_event_desk_show_free(void *data, void *event)
+{
+   E_Event_Desk_Show *ev;
+
+   ev = event;
+   e_object_unref(E_OBJECT(ev->desk));
+   free(ev);
+}
+
+static void
+_e_border_event_desk_deskshow_free(void *data, void *event)
 {
    E_Event_Desk_Show *ev;
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_desk.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- e_desk.h    21 Jul 2006 00:46:40 -0000      1.23
+++ e_desk.h    22 Jul 2006 22:25:04 -0000      1.24
@@ -5,6 +5,7 @@
 
 typedef struct _E_Desk E_Desk;
 typedef struct _E_Event_Desk_Show E_Event_Desk_Show;
+typedef struct _E_Event_Desk_DeskShow E_Event_Desk_DeskShow;
 typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change;
 
 #else
@@ -44,6 +45,7 @@
 EAPI void         e_desk_name_del(int container, int zone, int desk_x, int 
desk_y);
 EAPI void         e_desk_name_update(void);
 EAPI void         e_desk_show(E_Desk *desk);
+EAPI void         e_desk_deskshow(E_Zone *zone);
 EAPI void         e_desk_last_focused_focus(E_Desk *desk);
 EAPI E_Desk      *e_desk_current_get(E_Zone *zone);
 EAPI E_Desk      *e_desk_at_xy_get(E_Zone *zone, int x, int y);
@@ -57,6 +59,7 @@
 EAPI void         e_desk_col_remove(E_Zone *zone);
 
 extern EAPI int E_EVENT_DESK_SHOW;
+extern EAPI int E_EVENT_DESK_DESKSHOW;
 extern EAPI int E_EVENT_DESK_NAME_CHANGE;
 
 #endif



-------------------------------------------------------------------------
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