Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c 


Log Message:
Listen for changes in .desktop files.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.583
retrieving revision 1.584
diff -u -3 -r1.583 -r1.584
--- e_border.c  5 Apr 2007 20:58:07 -0000       1.583
+++ e_border.c  6 Apr 2007 11:09:03 -0000       1.584
@@ -44,7 +44,8 @@
 static int _e_border_cb_window_move_resize_request(void *data, int ev_type, 
void *ev);
 static int _e_border_cb_desktop_change(void *data, int ev_type, void *ev);
 static int _e_border_cb_sync_alarm(void *data, int ev_type, void *ev);
-static int _e_border_cb_util_desktop_list_change(void *data, int ev_type, void 
*ev);
+static int _e_border_cb_efreet_desktop_list_change(void *data, int ev_type, 
void *ev);
+static int _e_border_cb_efreet_desktop_change(void *data, int ev_type, void 
*ev);
 static int _e_border_cb_config_icon_theme(void *data, int ev_type, void *ev);
 
 static int  _e_border_cb_pointer_warp(void *data, int ev_type, void *ev);
@@ -170,7 +171,9 @@
 
    handlers = evas_list_append(handlers, 
ecore_event_handler_add(E_EVENT_POINTER_WARP, _e_border_cb_pointer_warp, NULL));
 
-   handlers = evas_list_append(handlers, 
ecore_event_handler_add(EFREET_EVENT_DESKTOP_LIST_CHANGE, 
_e_border_cb_util_desktop_list_change, NULL));
+   handlers = evas_list_append(handlers, 
ecore_event_handler_add(EFREET_EVENT_DESKTOP_LIST_CHANGE, 
_e_border_cb_efreet_desktop_list_change, NULL));
+   handlers = evas_list_append(handlers, 
ecore_event_handler_add(EFREET_EVENT_DESKTOP_CHANGE, 
_e_border_cb_efreet_desktop_change, NULL));
+
    handlers = evas_list_append(handlers, 
ecore_event_handler_add(E_EVENT_CONFIG_ICON_THEME, 
_e_border_cb_config_icon_theme, NULL));
    
    E_EVENT_BORDER_ADD = ecore_event_type_new();
@@ -4278,7 +4281,7 @@
 }
 
 static int
-_e_border_cb_util_desktop_list_change(void *data, int ev_type, void *ev)
+_e_border_cb_efreet_desktop_list_change(void *data, int ev_type, void *ev)
 {
    Evas_List *l;
    
@@ -4290,6 +4293,59 @@
        bd = l->data;
        bd->changes.icon = 1;
        bd->changed = 1;
+     }
+   return 1;
+}
+
+static int
+_e_border_cb_efreet_desktop_change(void *data, int ev_type, void *ev)
+{
+   Efreet_Event_Desktop_Change *event;
+   Evas_List *l;
+
+   event = ev;
+   switch (event->change)
+     {
+      case EFREET_DESKTOP_CHANGE_ADD:
+        /* If a desktop is added, make the borders without icon retry */
+        for (l = borders; l; l = l->next)
+          {
+             E_Border *bd;
+
+             bd = l->data;
+             if (!bd->desktop)
+               {
+                  bd->changes.icon = 1;
+                  bd->changed = 1;
+               }
+          }
+        break;
+      case EFREET_DESKTOP_CHANGE_REMOVE:
+        /* If a desktop is removed, drop the .desktop pointer */
+        for (l = borders; l; l = l->next)
+          {
+             E_Border *bd;
+
+             bd = l->data;
+             if (bd->desktop == event->current)
+               bd->desktop = NULL;
+          }
+        break;
+      case EFREET_DESKTOP_CHANGE_UPDATE:
+        /* If a desktop is updated, point to the new desktop and update the 
icon */
+        for (l = borders; l; l = l->next)
+          {
+             E_Border *bd;
+
+             bd = l->data;
+             if (bd->desktop == event->previous)
+               {
+                  bd->desktop = event->current;
+                  bd->changes.icon = 1;
+                  bd->changed = 1;
+               }
+          }
+        break;
      }
    return 1;
 }



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