summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAbhinav <abhinav.prsai@gmail.com>2025-05-29 13:57:22 +0100
committerAbhinav <abhinav.prsai@gmail.com>2025-05-29 13:57:22 +0100
commit957d76be32fb7fc5c35eebb1cef82ccb148b8f50 (patch)
tree046b2d5f7a5ced4261959a408e5db6bf2c007f08 /src
parent243ed206e7d6144b7d2f346cb543827fd49124cf (diff)
fix workspace windows staying unmapepd
Diffstat (limited to 'src')
-rw-r--r--src/sxwm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/sxwm.c b/src/sxwm.c
index aa2df69..9dea9f2 100644
--- a/src/sxwm.c
+++ b/src/sxwm.c
@@ -119,6 +119,7 @@ Window wm_check_win;
Monitor *mons = NULL;
int monsn = 0;
Bool global_floating = False;
+Bool in_ws_switch = False;
long last_motion_time = 0;
int scr_width;
@@ -209,6 +210,7 @@ void change_workspace(int ws)
return;
}
+ in_ws_switch = True;
XGrabServer(dpy);
for (Client *c = workspaces[current_ws]; c; c = c->next) {
@@ -231,6 +233,7 @@ void change_workspace(int ws)
(unsigned char *)&cd, 1);
XUngrabServer(dpy);
+ in_ws_switch = False;
}
int clean_mask(int mask)
@@ -907,6 +910,10 @@ void hdl_root_property(XEvent *xev)
void hdl_unmap_ntf(XEvent *xev)
{
+ if (in_ws_switch) {
+ return;
+ }
+
Window w = xev->xunmap.window;
for (int ws = 0; ws < NUM_WORKSPACES; ws++) {