aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Rameau <quinq+hackers@fifth.space>2015-11-07 14:09:08 +0100
committerHiltjo Posthuma <hiltjo@codemadness.org>2015-11-07 14:31:21 +0100
commitdce4fb373757727374d00c857ec0dfd225bbeafd (patch)
tree90d4a9f92b62603cf2bd85fc749db57608b903ab
parent646b351cc79845f4cc77415dfff474b9ae0053d9 (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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/dwm.c b/dwm.c
index 96b43f7..3639165 100644
--- a/dwm.c
+++ b/dwm.c
@@ -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;