fix use-after-free that broke exec's path getting stuff.
``paths'' isn't used anymore, but pointers to within that array are still
used in the next loop. delay freeing it until after then.
If a window is vertically maximized, then resized, before the MAXIMIZED
flag wasn't removed, now it is. so doing a resize then does the right
thing.
Also, separate flags are needed for vertical and normal maximziation,
else when you do vertical-maximize, followed by maximize, the window
returns to it's original size.
ok simon@, okan@
found in other places of the tree. Remove sticky and font commandline
options and add another one for alternative config locations.
Split off cwmrc(5) from cwm(1), nuke #ifdef __OpenBSD__ while there.
tested by various kind people, feedback from oga@ and okan@ - thanks!
ok oga@, jasper@, okan@
I've yet to speak to anyone who uses it, so just kill it.
You can still add/remove from groups using the mouse binding. Groups
may get a re-work sometime soon if i have a stroke of genius.
knocks about 4k off the i386 binary for me.
ok okan@, todd@.
code would always assume that the number of windows to switch to was
three if there were more windows hidden. Check for CLIENT_HIDDEN when we
count. Now it counts correctly.
ok simon@.
this prevents the issue where you close or hide a window, and end up
with no client selected (you're on the root window). When that happened
alt-tab failed. This, however, exposed to me a few more issues in the
alt-tabbing code:
-the code to detect how many lines we need looks bogus (you always get
three)
-alt-tabbing when everything is hidden always reawakes the most recent
window.
Fixes for these will be forthcoming.
ok simon@.
Also, exec_wm() currenty err()s out if something failed with the exec,
killing the currently running wm. This is bad. Replace the err() with
warn() instead.
from Gleydson Soares, thanks!
and the manpage to reflect this. While i'm here remove the note in todo
about cleaning up the menu code; it's been done.
ok ian@, okan@ (he also provided most of the manpage rework)
full description of changes:
-remove fontlist, and all associated structures/calls, it's not needed.
this also removes any doubt about leftover 9wm code (the list was
borrowed from it). Since cwm now uses Xft for everything, the legacy
font handling is just not needed.
-add /* FALLTHROUGH */ comments into grab_{label,menu}. I actually
didn't intend grab_menu to be a fallthrough, but it actually works quite
well there, so remove the extra rectangle drawing. I love it when that
happens.
-remove a couple of unused prototypes that were obviously missed
before.
-remove a bunch of commented out or if 0ed out code. It doesn't look to
be coming back anytime soon.
-several functions returned an int, but this was never checked. most of
them only failed if they failed to grab the pointer (thus the internal
state didn't change), so just make them void and return early if this is
the case.
-remove several unused functions and some useless variables.
knocks something like 200bytes off the stripped binary size for me.
ok marc@, tested by several others.
This should work functionally the same, with a few simplifications.
Changes:
- we don't care if you're holding another button when you release the
menu key if you don't want to select anything, move off the menu.
- remove the hysteresis from the menu selection (before you had to move
more than three pixels onto a new menu entry before it selected it)
- simplify a lot of the selection code
- kill dead code.
- do what the XXX comment said and cache the screensize (i may tweak
this later).
As far as I can tell, the only code remaining from 9wm is the list of
fonts in calmwm.c. Others appear to concur.
ok marc@, looked over and tested by a few others. Reminders from okan@.
files, and replace them with the actual ISC license.
- add license to the manpage (it was lacking before)
- correct license statement in the README
Permission given by Marius (copyright holder):
"1. please replace with the standard ISC license
2. you may add the ISC license to the man page
3. feel free to replace the information in the README as well"
and Dros (copyright holder for group.c):
"Please switch group.c to the ISC License."
ok ian@
overlap with the new ones, overriding them. Also a new "unmap" keyword
in binding definitions now unmaps a binding without adding a new one.
This seriously shrinks the ~/.calmwm/.keys directory of anyone who defines
their own bindings whilst wanting some of the defaults.
Looked over, liked and ok todd@