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 e_hints.h 


Log Message:
Cleanup always on top.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.183
retrieving revision 1.184
diff -u -3 -r1.183 -r1.184
--- e_border.c  9 May 2005 16:55:14 -0000       1.183
+++ e_border.c  10 May 2005 10:11:33 -0000      1.184
@@ -3689,7 +3689,7 @@
    mi = e_menu_item_new(m);
    e_menu_item_label_set(mi, _("Always On Top"));
    e_menu_item_check_set(mi, 1);
-   e_menu_item_toggle_set(mi, (bd->layer == 175 ? 1 : 0));
+   e_menu_item_toggle_set(mi, (bd->layer == 150 ? 1 : 0));
    e_menu_item_callback_set(mi, _e_border_menu_cb_on_top, bd);
    e_menu_item_icon_edje_set(mi,
                             (char *)e_theme_edje_file_get("base/theme/borders",
@@ -3844,10 +3844,16 @@
    E_Border *bd;
 
    bd = data;
-   if (bd->layer == 175)
-     bd->layer = 100;
+   if (bd->layer == 150)
+     {
+       bd->layer = 100;
+       e_hints_window_stacking_set(bd, E_STACKING_NONE);
+     }
    else
-     bd->layer = 175;
+     {
+       bd->layer = 150;
+       e_hints_window_stacking_set(bd, E_STACKING_ABOVE);
+     }
    e_container_window_raise(bd->zone->container, bd->win, bd->layer);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -3 -r1.45 -r1.46
--- e_border.h  8 May 2005 18:44:03 -0000       1.45
+++ e_border.h  10 May 2005 10:11:33 -0000      1.46
@@ -19,6 +19,13 @@
    E_TRANSITION_DECELERATE
 } E_Transition;
 
+typedef enum _E_Stacking
+{
+   E_STACKING_NONE,
+   E_STACKING_ABOVE,
+   E_STACKING_BELOW
+} E_Stacking;
+
 typedef struct _E_Border                     E_Border;
 typedef struct _E_Border_Pending_Move_Resize E_Border_Pending_Move_Resize;
 typedef struct _E_Event_Border_Resize        E_Event_Border_Resize;
@@ -157,7 +164,7 @@
            unsigned char skip_taskbar : 1;
            unsigned char skip_pager : 1;
            unsigned char fullscreen : 1;
-           unsigned char stacking : 2; /* 0 = None, 1 = Above, 2 = Below */
+           E_Stacking    stacking;
         } state;
 
         Ecore_X_Window_Type type;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- e_hints.c   2 May 2005 09:19:55 -0000       1.17
+++ e_hints.c   10 May 2005 10:11:34 -0000      1.18
@@ -256,9 +256,9 @@
 
    if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DESKTOP)
      bd->layer = 0;
-   else if (bd->client.netwm.state.stacking == 2)
+   else if (bd->client.netwm.state.stacking == E_STACKING_ABOVE)
      bd->layer = 50;
-   else if (bd->client.netwm.state.stacking == 1)
+   else if (bd->client.netwm.state.stacking == E_STACKING_BELOW)
      bd->layer = 150;
    else if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK)
      bd->layer = 150;
@@ -306,12 +306,15 @@
    
    switch (bd->client.netwm.state.stacking)
      {
-      case 1:
+      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);
-      case 2:
+        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);
@@ -615,28 +618,28 @@
         switch (action)
           {
            case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
-              if (bd->client.netwm.state.stacking == 1)
+              if (bd->client.netwm.state.stacking == E_STACKING_ABOVE)
                 {
-                   bd->client.netwm.state.stacking = 0;
+                   bd->client.netwm.state.stacking = E_STACKING_NONE;
                    changed = 1;
                 }
               break;
            case ECORE_X_WINDOW_STATE_ACTION_ADD:
-              if (bd->client.netwm.state.stacking == 0)
+              if (bd->client.netwm.state.stacking == E_STACKING_NONE)
                 {
-                   bd->client.netwm.state.stacking = 1;
+                   bd->client.netwm.state.stacking = E_STACKING_ABOVE;
                    changed = 1;
                 }
               break;
            case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
-              if (bd->client.netwm.state.stacking == 1)
+              if (bd->client.netwm.state.stacking == E_STACKING_ABOVE)
                 {
-                   bd->client.netwm.state.stacking = 0;
+                   bd->client.netwm.state.stacking = E_STACKING_NONE;
                    changed = 1;
                 }
-              else if (bd->client.netwm.state.stacking == 0)
+              else if (bd->client.netwm.state.stacking == E_STACKING_NONE)
                 {
-                   bd->client.netwm.state.stacking = 1;
+                   bd->client.netwm.state.stacking = E_STACKING_ABOVE;
                    changed = 1;
                 }
               break;
@@ -658,28 +661,28 @@
         switch (action)
           {
            case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
-              if (bd->client.netwm.state.stacking == 2)
+              if (bd->client.netwm.state.stacking == E_STACKING_BELOW)
                 {
-                   bd->client.netwm.state.stacking = 0;
+                   bd->client.netwm.state.stacking = E_STACKING_NONE;
                    changed = 1;
                 }
               break;
            case ECORE_X_WINDOW_STATE_ACTION_ADD:
-              if (bd->client.netwm.state.stacking == 0)
+              if (bd->client.netwm.state.stacking == E_STACKING_NONE)
                 {
-                   bd->client.netwm.state.stacking = 2;
+                   bd->client.netwm.state.stacking = E_STACKING_BELOW;
                    changed = 1;
                 }
               break;
            case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
-              if (bd->client.netwm.state.stacking == 2)
+              if (bd->client.netwm.state.stacking == E_STACKING_BELOW)
                 {
-                   bd->client.netwm.state.stacking = 0;
+                   bd->client.netwm.state.stacking = E_STACKING_NONE;
                    changed = 1;
                 }
-              else if (bd->client.netwm.state.stacking == 0)
+              else if (bd->client.netwm.state.stacking == E_STACKING_NONE)
                 {
-                   bd->client.netwm.state.stacking = 2;
+                   bd->client.netwm.state.stacking = E_STACKING_BELOW;
                    changed = 1;
                 }
               break;
@@ -858,7 +861,6 @@
 void
 e_hints_window_sticky_set(E_Border *bd, int on)
 {
-   ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_STICKY, 
on);
    if ((!bd->client.netwm.state.sticky) && (on))
      {
        ecore_x_netwm_window_state_set(bd->client.win, 
ECORE_X_WINDOW_STATE_STICKY, 1);
@@ -871,6 +873,29 @@
      }
 }
 
+void
+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.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);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- e_hints.h   2 May 2005 09:19:55 -0000       1.11
+++ e_hints.h   10 May 2005 10:11:34 -0000      1.12
@@ -35,8 +35,9 @@
 
 EAPI void e_hints_window_shaded_set(E_Border *bd, int on);
 EAPI void e_hints_window_maximized_set(E_Border *bd, int on);
-EAPI void e_hints_window_sticky_set(E_Border *bd, int on);
 EAPI void e_hints_window_fullscreen_set(E_Border *bd, int on);
+EAPI void e_hints_window_sticky_set(E_Border *bd, int on);
+EAPI void e_hints_window_stacking_set(E_Border *bd, E_Stacking stacking);
 
 EAPI void e_hints_window_icon_name_get(E_Border *bd);
     




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