Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

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


Modified Files:
        e_mod_main.c 


Log Message:


fixed pager stick/unstick/duplication problem (thanks catalyst/JC)
:)

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -3 -r1.62 -r1.63
--- e_mod_main.c        18 Mar 2005 17:13:10 -0000      1.62
+++ e_mod_main.c        19 Mar 2005 12:33:24 -0000      1.63
@@ -131,7 +131,7 @@
 about(E_Module *module)
 {
    e_error_dialog_show("Enlightenment Pager Module",
-                      "A pager module to navigate E17 desktops.");
+                      "A pager module to navigate virtual desktops.");
    return 1;
 }
 
@@ -929,22 +929,46 @@
    Pager_Face              *face;
    Pager_Win               *pw;
    Pager_Desk              *pd;
-
+   Evas_List               *l;
+   int                      found = 0;
+   
    face = data;
    ev = event;
    if (face->zone != ev->border->zone) return 1;
    if (ev->border->sticky) return 1;
 
-   pw = _pager_face_border_find(face, ev->border);
-   pd = _pager_face_desk_find(face, ev->border->desk);
-   if ((pw) && (pd))
+   for (l = face->desks; l; l = l->next)
+     {
+       pd = l->data;
+        if (ev->border->desk != pd->desk)
+         {
+            pw = _pager_desk_border_find(pd, ev->border);
+            if (pw)
+              {
+                 pd->wins = evas_list_remove(pd->wins, pw);
+                 _pager_window_free(pw);
+              }
+         }
+       else
+         {
+            pw = _pager_desk_border_find(pd, ev->border);
+            if (pw) found = 1;
+         }
+     }
+   if (!found)
      {
-       pw->desk->wins = evas_list_remove(pw->desk->wins, pw);
-       pw->desk = pd;
-       pd->wins = evas_list_append(pd->wins, pw);
-       e_layout_unpack(pw->window_object);
-       e_layout_pack(pd->layout_object, pw->window_object);
-       _pager_window_move(face, pw);
+       pw = _pager_face_border_find(face, ev->border);
+       pd = _pager_face_desk_find(face, ev->border->desk);
+       if ((pw) && (pd))
+         {
+            pw->desk->wins = evas_list_remove(pw->desk->wins, pw);
+            e_layout_unpack(pw->window_object);
+            
+            pw->desk = pd;
+            pd->wins = evas_list_append(pd->wins, pw);
+            e_layout_pack(pd->layout_object, pw->window_object);
+            _pager_window_move(face, pw);
+         }
      }
    return 1;
 }




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