Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_border.h e_hints.c 


Log Message:
For the speed freak.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.231
retrieving revision 1.232
diff -u -3 -r1.231 -r1.232
--- e_border.c  30 May 2005 06:24:14 -0000      1.231
+++ e_border.c  31 May 2005 06:52:04 -0000      1.232
@@ -2100,6 +2100,10 @@
      }
    else
      {
+       /* FIXME: We should ignore this when the window isn't mapped.
+        * The window should state the properties by itself, and we
+        * will pick them up on border creation.
+        */
        for (i = 0; i < 2; i++)
          {
             switch (e->state[i])
@@ -2835,6 +2839,11 @@
                                       bd->client.netwm.name);
          }
      }
+   if (bd->client.netwm.update.state)
+     {
+       e_hints_window_state_set(bd);
+       bd->client.netwm.update.state = 0;
+     }
    if (bd->client.icccm.fetch.name_class)
      {
        int nc_change = 0;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -3 -r1.62 -r1.63
--- e_border.h  29 May 2005 11:37:18 -0000      1.62
+++ e_border.h  31 May 2005 06:52:05 -0000      1.63
@@ -195,6 +195,10 @@
            unsigned char state : 1;
            */
         } fetch;
+
+        struct {
+             unsigned char state : 1;
+        } update;
       } netwm;
       Ecore_X_Window_Attributes initial_attributes;
    } client;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -r1.39 -r1.40
--- e_hints.c   29 May 2005 11:37:18 -0000      1.39
+++ e_hints.c   31 May 2005 06:52:05 -0000      1.40
@@ -381,41 +381,43 @@
 void
 e_hints_window_state_set(E_Border *bd)
 {
-   ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_MODAL, 
-                                 bd->client.netwm.state.modal);
-   ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_STICKY,
-                                 bd->client.netwm.state.sticky);
-   ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_MAXIMIZED_VERT,
-                                 bd->client.netwm.state.maximized_v);
-   ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ,
-                                 bd->client.netwm.state.maximized_h);
-   ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_SHADED,
-                                 bd->client.netwm.state.shaded);
-   ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_SKIP_TASKBAR,
-                                 bd->client.netwm.state.skip_taskbar);
-   ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_SKIP_PAGER,
-                                 bd->client.netwm.state.skip_pager);
-   ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HIDDEN,
-                                 bd->client.netwm.state.hidden);
-   ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_FULLSCREEN,
-                                 bd->client.netwm.state.fullscreen);
-   
+   Ecore_X_Window_State state[10];
+   int num;
+
+   num = 0;
+
+   if (bd->client.netwm.state.modal)
+     state[num++] = ECORE_X_WINDOW_STATE_MODAL;
+   if (bd->client.netwm.state.sticky)
+     state[num++] = ECORE_X_WINDOW_STATE_STICKY;
+   if (bd->client.netwm.state.maximized_v)
+     state[num++] = ECORE_X_WINDOW_STATE_MAXIMIZED_VERT;
+   if (bd->client.netwm.state.maximized_h)
+     state[num++] = ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ;
+   if (bd->client.netwm.state.shaded)
+     state[num++] = ECORE_X_WINDOW_STATE_SHADED;
+   if (bd->client.netwm.state.skip_taskbar)
+     state[num++] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR;
+   if (bd->client.netwm.state.skip_pager)
+     state[num++] = ECORE_X_WINDOW_STATE_SKIP_PAGER;
+   if (bd->client.netwm.state.hidden)
+     state[num++] = ECORE_X_WINDOW_STATE_HIDDEN;
+   if (bd->client.netwm.state.fullscreen)
+     state[num++] = ECORE_X_WINDOW_STATE_FULLSCREEN;
+
    switch (bd->client.netwm.state.stacking)
      {
       case E_STACKING_ABOVE:
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_ABOVE, 1);
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_BELOW, 0);
+        state[num++] = ECORE_X_WINDOW_STATE_ABOVE;
         break;
       case E_STACKING_BELOW:
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_ABOVE, 0);
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_BELOW, 1);
+        state[num++] = ECORE_X_WINDOW_STATE_BELOW;
         break;
       case E_STACKING_NONE:
       default:
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_ABOVE, 0);
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_BELOW, 0);
         break;
      }
+   ecore_x_netwm_window_state_list_set(bd->client.win, state, num);
 }
 
 void e_hints_window_type_set(E_Border *bd)
@@ -467,9 +469,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            ECORE_X_WINDOW_STATE_MODAL,
-                                            bd->client.netwm.state.modal);
+             bd->client.netwm.update.state = 1;
           }
         break;
       case ECORE_X_WINDOW_STATE_STICKY:
@@ -497,9 +497,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            ECORE_X_WINDOW_STATE_STICKY,
-                                            bd->client.netwm.state.sticky);
+             bd->client.netwm.update.state = 1;
              if (bd->client.netwm.state.sticky)
                e_border_stick(bd);
              else
@@ -531,9 +529,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            
ECORE_X_WINDOW_STATE_MAXIMIZED_VERT,
-                                            
bd->client.netwm.state.maximized_v);
+             bd->client.netwm.update.state = 1;
              if ((bd->client.netwm.state.maximized_v)
                  && (bd->client.netwm.state.maximized_h))
                e_border_maximize(bd);
@@ -567,9 +563,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            
ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ,
-                                            
bd->client.netwm.state.maximized_h);
+             bd->client.netwm.update.state = 1;
              if ((bd->client.netwm.state.maximized_v)
                  && (bd->client.netwm.state.maximized_h))
                e_border_maximize(bd);
@@ -603,9 +597,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            ECORE_X_WINDOW_STATE_SHADED,
-                                            bd->client.netwm.state.shaded);
+             bd->client.netwm.update.state = 1;
              if (bd->client.netwm.state.shaded)
                e_border_shade(bd, e_hints_window_shade_direction_get(bd));
              else
@@ -637,9 +629,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            ECORE_X_WINDOW_STATE_SKIP_TASKBAR,
-                                            
bd->client.netwm.state.skip_taskbar);
+             bd->client.netwm.update.state = 1;
           }
         break;
       case ECORE_X_WINDOW_STATE_SKIP_PAGER:
@@ -668,9 +658,7 @@
         if (changed)
           {
              /* FIXME, we have a pager, care about this! */
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            ECORE_X_WINDOW_STATE_SKIP_PAGER,
-                                            bd->client.netwm.state.skip_pager);
+             bd->client.netwm.update.state = 1;
           }
         break;
       case ECORE_X_WINDOW_STATE_HIDDEN:
@@ -701,9 +689,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            ECORE_X_WINDOW_STATE_FULLSCREEN,
-                                            bd->client.netwm.state.fullscreen);
+             bd->client.netwm.update.state = 1;
              if (bd->client.netwm.state.fullscreen)
                e_border_fullscreen(bd);
              else
@@ -745,9 +731,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            ECORE_X_WINDOW_STATE_ABOVE,
-                                            bd->client.netwm.state.stacking);
+             bd->client.netwm.update.state = 1;
              if (bd->client.netwm.state.stacking)
                bd->layer = 150;
              else
@@ -790,9 +774,7 @@
           }
         if (changed)
           {
-             ecore_x_netwm_window_state_set(bd->client.win,
-                                            ECORE_X_WINDOW_STATE_BELOW,
-                                            bd->client.netwm.state.stacking);
+             bd->client.netwm.update.state = 1;
              if (bd->client.netwm.state.stacking)
                bd->layer = 50;
              else
@@ -826,7 +808,7 @@
    bd->client.netwm.state.fullscreen = 0;
    bd->client.netwm.state.stacking = 0;
 
-   state = ecore_x_netwm_window_state_get(bd->client.win, &num);
+   state = ecore_x_netwm_window_state_list_get(bd->client.win, &num);
    if (state)
      {
        for (i = 0; i < num; i++)
@@ -891,7 +873,7 @@
      }
    if (bd->client.netwm.state.hidden)
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_HIDDEN, 0);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.hidden = 0;
      }
 }
@@ -906,7 +888,7 @@
      }
    if (!bd->client.netwm.state.hidden)
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_HIDDEN, 1);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.hidden = 1;
      }
 }
@@ -921,7 +903,7 @@
      }
    if (bd->client.netwm.state.hidden)
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_HIDDEN, 0);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.hidden = 0;
      }
 }
@@ -931,12 +913,12 @@
 {
    if ((!bd->client.netwm.state.shaded) && (on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_SHADED, 1);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.shaded = 1;
      }
    else if ((bd->client.netwm.state.shaded) && (!on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_SHADED, 0);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.shaded = 0;
      }
 }
@@ -967,22 +949,22 @@
 {
    if ((!bd->client.netwm.state.maximized_v) && (on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, 1);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.maximized_v = 1;
      }
    else if ((bd->client.netwm.state.maximized_v) && (!on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, 0);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.maximized_v = 0;
      }
    if ((!bd->client.netwm.state.maximized_h) && (on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, 1);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.maximized_h = 1;
      }
    else if ((bd->client.netwm.state.maximized_h) && (!on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, 0);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.maximized_h = 0;
      }
 }
@@ -992,12 +974,12 @@
 {
    if ((!bd->client.netwm.state.fullscreen) && (on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_FULLSCREEN, 1);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.fullscreen = 1;
      }
    else if ((bd->client.netwm.state.fullscreen) && (!on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_FULLSCREEN, 0);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.fullscreen = 0;
      }
 }
@@ -1007,12 +989,12 @@
 {
    if ((!bd->client.netwm.state.sticky) && (on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_STICKY, 1);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.sticky = 1;
      }
    else if ((bd->client.netwm.state.sticky) && (!on))
      {
-       ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_STICKY, 0);
+       bd->client.netwm.update.state = 1;
        bd->client.netwm.state.sticky = 0;
      }
 }
@@ -1021,31 +1003,10 @@
 e_hints_window_stacking_set(E_Border *bd, E_Stacking stacking)
 {
    if (bd->client.netwm.state.stacking == stacking) return;
-   switch (stacking)
-     {
-      case E_STACKING_ABOVE:
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_ABOVE, 1);
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_BELOW, 0);
-        break;
-      case E_STACKING_BELOW:
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_ABOVE, 0);
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_BELOW, 1);
-        break;
-      case E_STACKING_NONE:
-      default:
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_ABOVE, 0);
-        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_BELOW, 0);
-        break;
-     }
+   bd->client.netwm.update.state = 1;
    bd->client.netwm.state.stacking = stacking;
 }
 
-/*
-   ecore_x_netwm_window_state_set(win, ECORE_X_WINDOW_STATE_MODAL, on);
-   ecore_x_netwm_window_state_set(win, ECORE_X_WINDOW_STATE_SKIP_TASKBAR, on);
-   ecore_x_netwm_window_state_set(win, ECORE_X_WINDOW_STATE_SKIP_PAGER, on);
-   */
-
 void
 e_hints_window_desktop_set(E_Border *bd)
 {




-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to