Assign the sticky value for _NET_WM_DESKTOP on scratchpad windows. (#2457)

fixes #2456
This commit is contained in:
Ingo Bürk
2016-09-27 07:39:17 +02:00
committed by Michael Stapelberg
parent c93056b2d8
commit a15ce8cb8d
3 changed files with 40 additions and 8 deletions

View File

@ -430,7 +430,10 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
if (xcb_reply_contains_atom(state_reply, A__NET_WM_STATE_STICKY))
nc->sticky = true;
if (cwindow->wm_desktop == NET_WM_DESKTOP_ALL) {
/* We ignore the hint for an internal workspace because windows in the
* scratchpad also have this value, but upon restarting i3 we don't want
* them to become sticky windows. */
if (cwindow->wm_desktop == NET_WM_DESKTOP_ALL && !con_is_internal(ws)) {
DLOG("This window has _NET_WM_DESKTOP = 0xFFFFFFFF. Will float it and make it sticky.\n");
nc->sticky = true;
want_floating = true;