-
-
Notifications
You must be signed in to change notification settings - Fork 244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix and improve BAR_WINTITLEACTIONS_PATCH #442
Conversation
You are trying to add two independent changes with one pull request here. It is in general better to raise two separate pull requests because that way one can discuss each change independently and the one change does not depend approval of the other to be merged. I'm sure you'll see what I mean. Change 1In the one commit we introduce a I am not entirely sure if the I'm not against adding such a feature / function. I'd probably not call the Change 2The second change aims to address an issue with hidden windows and restarting dwm. The approach is to loop through and unhide every hidden client in the Besides that the When dwm starts it is going to make a call to While looping through the windows that are available it is going to also pick up and manage windows that are hidden. if (wa.map_state == IsViewable || getstate(wins[i]) == IconicState)
manage(wins[i], &wa); If there is something wrong then that would more likely be with how the window is handled in the In the Digging a bit further I find that the windows are not actually passed from I am not entirely sure why dwm does this. Maybe it is to indicate that the window manager is no longer managing the window. That One possible solution could be to get rid of the diff --git a/dwm.c b/dwm.c
index 893bd74..c0b332a 100644
--- a/dwm.c
+++ b/dwm.c
@@ -4572,7 +4572,8 @@ unmanage(Client *c, int destroyed)
XSelectInput(dpy, c->win, NoEventMask);
XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
- setclientstate(c, WithdrawnState);
+ if (!HIDDEN(c))
+ setclientstate(c, WithdrawnState);
XSync(dpy, False);
XSetErrorHandler(xerror);
XUngrabServer(dpy); |
That's right, thanks for the advice, I'll be more attentive in the future when publishing PR. Change 1Indeed, Change 2I made the changes as you described, and it really works better! Now, when restarting, the hidden windows do not disappear and do not become visible. |
I think this looks good. The Just a suggestion. For me this is good to merge, but I'll leave it open for a day more in case someone else have any remarks. |
The first thing that corrects this PR is the loss of hidden clients after rebooting with a RESTARTSIG_PATCH.
Second, this is the addition of the opportunity to show all the hidden clients using a combination of keys, which is sometimes useful.