diff options
author | Quentin Rameau <quinq+hackers@fifth.space> | 2015-11-07 14:09:08 +0100 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2015-11-07 14:31:21 +0100 |
commit | dce4fb373757727374d00c857ec0dfd225bbeafd (patch) | |
tree | 90d4a9f92b62603cf2bd85fc749db57608b903ab | |
parent | 646b351cc79845f4cc77415dfff474b9ae0053d9 (diff) |
setfullscreen: don't process the property twice
Some clients try to set _NET_WM_STATE_FULLSCREEN even when the window is
already in fullscreen.
For example, c->oldstate was set two times in a raw and window would
then always be floating.
We must check that it's not the case before processing it.
(original patch modified with suggestion from Markus Teich
<markus.teich@stusta.mhn.de>)
-rw-r--r-- | dwm.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1441,7 +1441,7 @@ setfocus(Client *c) { void setfullscreen(Client *c, Bool fullscreen) { - if(fullscreen) { + if(fullscreen && !c->isfullscreen) { XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32, PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1); c->isfullscreen = True; @@ -1452,7 +1452,7 @@ setfullscreen(Client *c, Bool fullscreen) { resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh); XRaiseWindow(dpy, c->win); } - else { + else if(!fullscreen && c->isfullscreen){ XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32, PropModeReplace, (unsigned char*)0, 0); c->isfullscreen = False; |