Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.h e_hints.c 


Log Message:


1. TODO item
2. netwm stuff broke e17 - it was setting all windwos to want to go to desk 0
as if it didnt find netwm hints - netwm.desk was 0 anyway - and thus bordfers
got instantly re-attached to deskt 0... and thus if u flipped desktops,
things got weird (new windwos all jumped to desk 0)

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -3 -r1.53 -r1.54
--- e_border.h  16 May 2005 15:43:09 -0000      1.53
+++ e_border.h  17 May 2005 08:30:15 -0000      1.54
@@ -148,6 +148,7 @@
       struct {
         pid_t pid;
         unsigned int desktop;
+        unsigned char use_desktop : 1;
 
         /* NetWM Window state */
         struct {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- e_hints.c   16 May 2005 15:43:09 -0000      1.23
+++ e_hints.c   17 May 2005 08:30:26 -0000      1.24
@@ -289,14 +289,20 @@
    e_border_raise(bd);
 
    if (!ecore_x_netwm_desktop_get(bd->client.win, &bd->client.netwm.desktop))
-     bd->client.netwm.desktop = 0;
+     {
+       bd->client.netwm.use_desktop = 0;
+       bd->client.netwm.desktop = 0;
+     }
+   else
+     bd->client.netwm.use_desktop = 1;
    if (!ecore_x_netwm_pid_get(bd->client.win, &bd->client.netwm.pid))
      bd->client.netwm.pid = -1;
 
    if (bd->client.netwm.desktop == 0xffffffff)
      e_border_stick(bd);
-   else if ((bd->client.netwm.desktop >= 0)
-           && (bd->client.netwm.desktop < (bd->zone->desk_x_count * 
bd->zone->desk_y_count)))
+   else if ((bd->client.netwm.use_desktop) &&
+           (bd->client.netwm.desktop >= 0) &&
+           (bd->client.netwm.desktop < (bd->zone->desk_x_count * 
bd->zone->desk_y_count)))
      {
        E_Desk *desk;
        int x, y;
@@ -305,7 +311,8 @@
        x = bd->client.netwm.desktop - (y * bd->zone->desk_x_count);
 
        desk = e_desk_at_xy_get(bd->zone, x, y);
-       e_border_desk_set(bd, desk);
+       if (desk)
+         e_border_desk_set(bd, desk);
      }
 
    if (bd->client.netwm.state.sticky)




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to