| Commit message (Collapse) | Author | Age | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As cwm was using the screen's default visual and colormap to draw all
client borders, borders for windows that had a depth of 32 bits were not
rendered correctly. The same happened with text in the popup menus which
were recently changed to be drawn in the context of the client.
This commit introduces a Visual reference for each client, and allocates
all potential colors for a client's specific visual and colormap in the
client_ctx struct. These colors are then used to draw client borders and
popup menus.
Additionally, since we touch the drawing code anyway, borders are
reintroduced to the popup menus for better contrast.
|
|
|
|
|
| |
Obscure feature. Confusing if you don't know about it, mostly useless if
you do. Matching on currently visible window titles is enough.
|
|
|
|
|
|
|
|
|
| |
Original file locations in the OpenBSD tree:
- lib/libc/stdlib/reallocarray.c
- lib/libc/stdlib/strtonum.c
- lib/libc/string/strlcat.c
- lib/libc/string/strlcpy.c
- sys/sys/queue.h
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
htile/vtile actions. From Uwe Werler, with a few manpage tweaks.
|
|
|
|
| |
determine what client to set active. Reduces a round trip for every window.
|
|
|
|
|
|
|
|
|
|
|
| |
From and OK okan@
Original commit message:
Plug two memory leaks. Also get rid of a variable that is no longer
necessary.
OK okan@
|
| |
|
|
|
|
| |
OK okan@
|
| |
|
|
|
|
| |
dosage/removal of wrappers, simplification of name queue, client cycle joins other kb/mb bound functions.
|
|
|
|
| |
Behaviour (or lack there of) noticed by Raf Czlonka.
|
|
|
|
|
| |
iterating over all (fallback if no screen provided for now). Initially convert
trivial uses of client_current().
|
| |
|
| |
|
|
|
|
| |
client_show().
|
| |
|
| |
|
|
|
|
|
| |
delete; 'window-close' is now the proper action, but 'window-delete' as an
alias will remain until more interesting changes require breaking configs.
|
|
|
|
| |
from Charles A Daniels.
|
|
|
|
|
|
| |
via property notify events. Previously only the flags were set but nothing was
in the path to apply said flags and/or bwidth. Required slight of re-orgnaization
of client_init.
|
|
|
|
|
|
|
|
|
|
|
| |
containing {P,US}Position requests where they are explicitly set to 'ignore' in
cwmrc(5); clients are unaware that their border will be altered (removed in
this case) when calcuating position and thus end up a factor of their original
border width off once mapped by cwm(1). cwm(1) will essentially shift the
client to the edge if the original request's position and border match.
Window offset noticed by at least Andre Stoebe via bugs@, and others since
(and likely before). Thanks!
|
| |
|
|
|
|
|
|
|
|
|
| |
into the keyrelease event, only performing what's actually needed for each;
should result in much fewer events against keyreleases. No intended behaviour
change.
Additionally, like we do for group membership, grab the keyboard only when
required for cycling.
|
| |
|
| |
|
|
|
|
|
|
|
| |
close to cwm's 'ignore'.
Roughly based on an initial diff from Walter Alejandro Iglesias, but with
support for both Atoms and without cwm-based bindings.
|
|
|
|
| |
borders; based on a patch from Vadim Vygonets.
|
|
|
|
|
|
| |
actions, so as to not lose windows off the edge.
inspired by diffs (and feedback) from Vadim Vygonets.
|
| |
|
| |
|
|
|
|
|
| |
cycle list; seems to match behaviour of other wm's; from Walter Alejandro
Iglesias.
|
|
|
|
|
|
|
| |
to %50 of the area, then fill in the remaining space with the other clients in
the same group; from Gerrit Meyerheim.
support from ajacoutot.
|
|
|
|
|
|
| |
may also change.
from Vadim Vygonets
|
|
|
|
|
| |
final position is at least viewable and warp'able by the difference of bwidth;
prevents mapping windows completely off the virtual screen.
|
| |
|
|
|
|
| |
(re)calculating only when applying hints.
|
|
|
|
|
|
|
|
| |
client_ctx in keypress and buttonpress event handlers; pass appropriate *ctx's
based on context.
While here, limit some globals, replace defines with appropriate variables and
fix some naming.
|
|
|
|
|
| |
actions do ptrsave, such as restoring client geometry; adapted from a
diff by Vadim Vygonets.
|
|
|
|
| |
needed/used.
|
|
|
|
| |
well as give 'sticky' groups its own variable.
|
|
|
|
|
| |
requests); most callers do this already - deal with the few that do not.
client_ptrwarp becomes a simple wrapper (setpos) but it will be expanded.
|
|
|
|
|
| |
until (maybe) a ptrwarp call. Likewise, explicitly ensure an inbounds ptr
position (same as initial) when saving.
|
| |
|
|
|
|
| |
client_none().
|
|
|
|
|
|
|
|
| |
active; while we already look at what's under the pointer, use this
information first, then look under the pointer (saving that round-trip).
This restores the active state to a client after restart even if the
pointer is not above it (and of course the pointer is not above another
client).
|
|
|
|
|
|
| |
from r1.218 switching to malloc - clearly missed this case.
found the hard way by brynet@
|
|
|
|
| |
instead of relying on curcc.
|
| |
|