Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_hints.c e_manager.c 


Log Message:


fix battery module sizing and handle netwm activate messages.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -3 -r1.97 -r1.98
--- e_hints.c   13 Mar 2008 19:09:15 -0000      1.97
+++ e_hints.c   30 Jun 2008 08:48:29 -0000      1.98
@@ -259,6 +259,7 @@
    E_Border_List *bl;
    E_Border *b;
    Ecore_X_Window *clients = NULL;
+   Ecore_X_Window *clients_focus = NULL;
 
    /* Get client count by adding client lists on all containers */
    for (ml = e_manager_list(); ml; ml = ml->next)
@@ -281,6 +282,7 @@
        for (ml = e_manager_list(); ml; ml = ml->next)
          {
             m = ml->data;
+            i = 0;
             for (cl = m->containers; cl; cl = cl->next)
               {
                  c = cl->data;
@@ -289,12 +291,16 @@
                    clients[i++] = b->client.win;
                  e_container_border_list_free(bl);
               }
-         }
-       for (ml = e_manager_list(); ml; ml = ml->next)
-         {
-            m = ml->data;
-            ecore_x_netwm_client_list_set(m->root, clients, num);
-            ecore_x_netwm_client_list_stacking_set(m->root, clients, num);
+            if (i > 0)
+              {
+                 ecore_x_netwm_client_list_stacking_set(m->root, clients, i);
+                 ecore_x_netwm_client_list_set(m->root, clients, i);
+              }
+            else
+              {
+                 ecore_x_netwm_client_list_set(m->root, NULL, 0);
+                 ecore_x_netwm_client_list_stacking_set(m->root, NULL, 0);
+              }
          }
      }
    else
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_manager.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -3 -r1.70 -r1.71
--- e_manager.c 19 Jun 2008 11:56:09 -0000      1.70
+++ e_manager.c 30 Jun 2008 08:48:29 -0000      1.71
@@ -13,6 +13,7 @@
 static int _e_manager_cb_frame_extents_request(void *data, int ev_type, void 
*ev);
 static int _e_manager_cb_ping(void *data, int ev_type, void *ev);
 static int _e_manager_cb_screensaver_notify(void *data, int ev_type, void *ev);
+static int _e_manager_cb_client_message(void *data, int ev_type, void *ev);
 
 static Evas_Bool _e_manager_frame_extents_free_cb(const Evas_Hash *hash 
__UNUSED__,
                                                  const char *key __UNUSED__,
@@ -142,6 +143,8 @@
    if (h) man->handlers = evas_list_append(man->handlers, h);
    h = ecore_event_handler_add(ECORE_X_EVENT_SCREENSAVER_NOTIFY, 
_e_manager_cb_screensaver_notify, man);
    if (h) man->handlers = evas_list_append(man->handlers, h);
+   h = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, 
_e_manager_cb_client_message, man);
+   if (h) man->handlers = evas_list_append(man->handlers, h);
 
    man->pointer = e_pointer_window_new(man->root, 1);
 
@@ -785,6 +788,51 @@
    return 1;
 }
 
+static int
+_e_manager_cb_client_message(void *data, int ev_type, void *ev)
+{
+   E_Manager *man;
+   Ecore_X_Event_Client_Message *e;
+   E_Border *bd;
+   
+   man = data;
+   e = ev;
+   
+   if (e->message_type == ECORE_X_ATOM_NET_ACTIVE_WINDOW)
+     {
+       bd = e_border_find_by_client_window(e->win);
+       if ((bd) && (!bd->focused))
+         {
+            if (bd->iconic)
+              {
+                 if (e_config->clientlist_warp_to_iconified_desktop == 1)
+                   e_desk_show(bd->desk);
+                 
+                 if (!bd->lock_user_iconify)
+                   e_border_uniconify(bd);
+              }
+            if (!bd->iconic) e_desk_show(bd->desk);
+            if (!bd->lock_user_stacking) e_border_raise(bd);
+            if (!bd->lock_focus_out)
+              {  
+                 if (e_config->focus_policy != E_FOCUS_CLICK)
+                   ecore_x_pointer_warp(bd->zone->container->win,
+                                        bd->x + (bd->w / 2), bd->y + (bd->h / 
2));
+                 e_border_focus_set(bd, 1, 1);
+              }
+#if 0 /* notes */           
+            if (e->data.l[0] == 0 /* 0 == old, 1 == client, 2 == pager */)
+              {
+              }
+            timestamp = e->data.l[1];
+            requestor_id e->data.l[2];
+#endif      
+         }
+     }
+   
+   return 1;
+}
+
 static Evas_Bool
 _e_manager_frame_extents_free_cb(const Evas_Hash *hash __UNUSED__, const char 
*key __UNUSED__,
                                 void *data, void *fdata __UNUSED__)
@@ -823,5 +871,4 @@
 static int _e_manager_cb_window_property(void *data, int ev_type, void 
*ev){return 1;}
 static int _e_manager_cb_window_colormap(void *data, int ev_type, void 
*ev){return 1;}
 static int _e_manager_cb_window_shape(void *data, int ev_type, void 
*ev){return 1;}
-static int _e_manager_cb_client_message(void *data, int ev_type, void 
*ev){return 1;}
 #endif



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to