Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c 


Log Message:
Update state hints on windows without borders.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.203
retrieving revision 1.204
diff -u -3 -r1.203 -r1.204
--- e_border.c  15 May 2005 05:20:17 -0000      1.203
+++ e_border.c  15 May 2005 10:11:54 -0000      1.204
@@ -1963,13 +1963,48 @@
 {
    E_Border *bd;
    Ecore_X_Event_Window_State *e;
-   int i;
+   int i, on;
 
    e = ev;
    bd = e_border_find_by_client_window(e->win);
-   if (!bd) return 1;
-   for (i = 0; i < 2; i++)
-     e_hints_window_state_update(bd, e->state[i], e->action);
+   if (!bd)
+     {
+       for (i = 0; i < 2; i++)
+         {
+            if (e->state[i] == ECORE_X_WINDOW_STATE_ICONIFIED)
+              {
+                 if (e->action == ECORE_X_WINDOW_STATE_ACTION_ADD)
+                   {
+                      ecore_x_icccm_state_set(e->win, 
ECORE_X_WINDOW_STATE_HINT_ICONIC);
+                      ecore_x_netwm_window_state_set(e->win, 
ECORE_X_WINDOW_STATE_HIDDEN, 1);
+                   }
+              }
+            else
+              {
+                 switch (e->action)
+                   {
+                    case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
+                       ecore_x_netwm_window_state_set(e->win, e->state[i], 0);
+                       break;
+                    case ECORE_X_WINDOW_STATE_ACTION_ADD:
+                       ecore_x_netwm_window_state_set(e->win, e->state[i], 1);
+                       break;
+                    case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+                       on = ecore_x_netwm_window_state_isset(e->win, 
e->state[i]);
+                       if (on)
+                         ecore_x_netwm_window_state_set(e->win, e->state[i], 
0);
+                       else
+                         ecore_x_netwm_window_state_set(e->win, e->state[i], 
1);
+                       break;
+                   }
+              }
+         }
+     }
+   else
+     {
+       for (i = 0; i < 2; i++)
+         e_hints_window_state_update(bd, e->state[i], e->action);
+     }
    return 1;
 }
 




-------------------------------------------------------
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=7393&alloc_id=16281&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to