---
 client.c   |    7 -------
 ewmh.c     |    5 +++++
 property.c |    1 +
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/client.c b/client.c
index 5c88d2c..a496e12 100644
--- a/client.c
+++ b/client.c
@@ -414,15 +414,8 @@ client_layer_translator(client_t *c)
     /* then deal with windows type */
     switch(c->type)
     {
-      case WINDOW_TYPE_DOCK:
-        return LAYER_ABOVE;
       case WINDOW_TYPE_DESKTOP:
         return LAYER_DESKTOP;
-      case WINDOW_TYPE_DIALOG:
-      case WINDOW_TYPE_MENU:
-      case WINDOW_TYPE_TOOLBAR:
-      case WINDOW_TYPE_UTILITY:
-        return LAYER_ABOVE;
       default:
         break;
     }
diff --git a/ewmh.c b/ewmh.c
index 85e17e0..475d23d 100644
--- a/ewmh.c
+++ b/ewmh.c
@@ -581,6 +581,11 @@ ewmh_client_check_hints(client_t *c)
                 c->type = MAX(c->type, WINDOW_TYPE_TOOLBAR);
             else if(state[i] == _NET_WM_WINDOW_TYPE_UTILITY)
                 c->type = MAX(c->type, WINDOW_TYPE_UTILITY);
+
+            if (c->type != WINDOW_TYPE_NORMAL &&
+                    c->type != WINDOW_TYPE_DESKTOP &&
+                    !c->transient_for)
+                client_setabove(c, true);
     }
 
     p_delete(&reply);
diff --git a/property.c b/property.c
index 3caa0b0..1fd85e4 100644
--- a/property.c
+++ b/property.c
@@ -51,6 +51,7 @@ property_update_wm_transient_for(client_t *c, 
xcb_get_property_reply_t *reply)
 
     c->type = WINDOW_TYPE_DIALOG;
     c->transient_for = client_getbywin(trans);
+    client_setabove(c, false);
 }
 
 static int
-- 
1.6.2


-- 
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.

Reply via email to