diff options
author | Lars Luthman <mail@larsluthman.net> | 2015-08-25 12:07:05 +0200 |
---|---|---|
committer | Olivier Fourdan <fourdan@xfce.org> | 2015-08-25 16:57:25 +0200 |
commit | 3f29fb1342e6fc76970e8bfbbbc857568349abdc (patch) | |
tree | f8d42bef127a72c93cd18fb5149481857318550d /src/netwm.c | |
parent | d8fe4788541f5092e049b8f18ce1fbcfc2a09147 (diff) | |
download | xfwm4-3f29fb1342e6fc76970e8bfbbbc857568349abdc.tar.gz |
Stack notifications on top of fullscreen windows
Bug: 7928
Add support for _NET_WM_WINDOW_TYPE_NOTIFICATION windows and stack
them in a specific layer above of all other layers.
Diffstat (limited to 'src/netwm.c')
-rw-r--r-- | src/netwm.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/netwm.c b/src/netwm.c index 9826c8c3e..51490e557 100644 --- a/src/netwm.c +++ b/src/netwm.c @@ -833,7 +833,8 @@ clientGetNetWmType (Client * c) (atoms[i] == display_info->atoms[NET_WM_WINDOW_TYPE_DIALOG]) || (atoms[i] == display_info->atoms[NET_WM_WINDOW_TYPE_NORMAL]) || (atoms[i] == display_info->atoms[NET_WM_WINDOW_TYPE_UTILITY]) || - (atoms[i] == display_info->atoms[NET_WM_WINDOW_TYPE_SPLASH])) + (atoms[i] == display_info->atoms[NET_WM_WINDOW_TYPE_SPLASH]) || + (atoms[i] == display_info->atoms[NET_WM_WINDOW_TYPE_NOTIFICATION])) { c->type_atom = atoms[i]; break; @@ -1293,6 +1294,18 @@ clientWindowType (Client * c) XFWM_FLAG_HAS_MENU | XFWM_FLAG_HAS_MOVE | XFWM_FLAG_HAS_RESIZE); } + else if (c->type_atom == display_info->atoms[NET_WM_WINDOW_TYPE_NOTIFICATION]) + { + TRACE ("atom net_wm_window_type_notification detected"); + c->type = WINDOW_NOTIFICATION; + c->initial_layer = WIN_LAYER_NOTIFICATION; + /* We unset these because CLIENT_FLAG_ABOVE will interfere with + our layer placement and put the window in the ABOVE_DOCK + layer, which is below the FULLSCREEN layer when the flags + are processed later. */ + FLAG_UNSET (c->flags, + CLIENT_FLAG_ABOVE | CLIENT_FLAG_BELOW); + } } else { |