original from naddy@:
> Don't declare variables as "unsigned char *" that are passed to
> functions that take "char *" arguments. Where such chars are
> assigned to int or passed to ctype functions, explicitly cast them
> to unsigned char.
>
> For OpenBSD's clang, -Wpointer-sign has been disabled by default,
> but when the parse.y code was built elsewhere, the compiler would
> complain.
>
> With help from millert@
> ok benno@ deraadt@
Spawn a window, maximize it in any way, move the cursor to a window border
that is not on the screen's edge and unmaximize again: While the window
goes back the cursor stays at the screen's edge, i.e. focus is lost to the
underlaying window.
Moving, resizing, tiling or snapping windows in any way always moves the
cursor along iff needed, e.g. using MS-[hjkl] to move a small window from
the center to the edge keeps the cursor within window borders -- no matter
what you do with the keyboard, focus stays on that window.
Make CM-f, CM-m, CM-equal and CMS-equal (default bindings) for toggling
full-screen mode, maximization, vertical maximization and horizontal
maximization of the current window drag the cursor along if needed as well.
OK okan kmos dv
quoted arguments are stored for other window managers.
The quotation handling happens within the while loop without checking if
the "end" limit has been already reached. If this happens, the final
NULL assignment leads to an out of boundary write on stack.
OK okan@
there's a window of time where an expose or enternotify event will get
generated for a lower client; use a hammer and drain events after keyboard
move/resize, until such a time that cwm doesn't warp the pointer. Behavior
noticed by kn.
ok kn@
Link what is described as "applications" here to how they are actually
defined in cwmrc(5).
While here, call the configuration file what it is instead of reusing
the default path (already mentioned in the FILES section).
OK okan
client thus always falling back to client_current(); while the current client
is problaby right in most cases, use event's subwindow (not window) to find the
client. Bail early if this event came to us from a screen we don't manage.
This is result of us grabing all keybindings off the root window instead of
selectively.