aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Ensure the pointer stays within client bounds after a window 'snap' (to edge).okan2020-03-18-1/+2
| | | | reported by Stefan Hagen.
* Because cwm warps the pointer during a client move (to stay within the ↵okan2019-08-24-1/+3
| | | | | | client), 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@
* Fix regression from r1.107 (lost a return); kettenis@ pointed out the high ↵okan2019-08-24-1/+2
| | | | potential for a use-after-free (true!) where kn@ ran into the regression using an app that actually exercised the XGrabPointer() failure path.
* Add application sectionkn2019-07-09-4/+8
| | | | | | | | | | 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
* command uses execvp(3) not execve(2)kn2019-07-02-3/+3
| | | | util.c:u_exec() has been doing so since import.
* Plug a memory leak in log_debug(); OK okan@tim2019-04-29-1/+2
|
* Handle _NET_WM_NAME changes.tim2019-04-29-2/+3
| | | | | | | This fixes the problem where cwm's window menu wouldn't show Firefox's current window title if it contains non-ASCII characters. OK okan@
* Check the atom type on propertynotify before iterating.okan2019-03-11-4/+6
|
* use screen_find() for xrandr crtc changesokan2019-03-10-12/+9
|
* Find the managed screen from the parent window for client_current().okan2019-03-10-5/+9
|
* Print window id in hex; while here, remove unnecessary newline.okan2019-03-08-2/+2
|
* Similar to keypress event, fetch the screen from the event root window in theokan2019-03-08-7/+5
| | | | | buttonpress handler; bail if we don't manage the screen. Allows us to find the current client based on the screen/event root.
* extend verbose logging for key/button eventsokan2019-03-08-5/+8
|
* [keypress event] turns out we've been checking the wrong window for a matchingokan2019-03-08-7/+8
| | | | | | | | 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.
* add parans for readibilityokan2019-03-08-5/+5
|
* Teach client_current() to use a screen to find the current client instead ofokan2019-03-07-16/+23
| | | | | iterating over all (fallback if no screen provided for now). Initially convert trivial uses of client_current().
* check cc->gc directlyokan2019-03-07-5/+3
|
* zip extra linesokan2019-03-07-6/+2
|
* gc clientq inside groups, instead use the better maintained one per-screenokan2019-03-07-31/+43
|
* shuffle deck chairs: rename group actions to match intent for clarityokan2019-03-07-34/+34
|
* same thing as screen_find()okan2019-03-06-8/+4
|
* Separate out the menu window from the client resize/move geom window; in eachokan2019-03-04-86/+99
| | | | case, create and destroy on-demand. Isolate more menu specific code.
* fix a few misplaced (and misnamed) ewmh root window functionsokan2019-03-04-18/+18
|
* _NET_WORKAREA needs ngroups, so screen_update_geometry() needs to come afterokan2019-03-04-2/+2
| | | | conf_group().
* simplify xftcolor configokan2019-03-04-6/+3
|
* Tie group number and name together during config.okan2019-03-01-17/+36
|
* Move the group index (desktop number) check to the only 2 callers that requireokan2019-02-28-16/+8
| | | | checking due to ewmh.
* Ensure we don't action on the last group when the requested one is not found.okan2019-02-28-20/+18
|
* Selectively hide and show clients based on state; merge client_unhide() andokan2019-02-28-20/+12
| | | | client_show().
* Add a configtest flag (-n).okan2019-02-25-8/+19
| | | | based on a diff from Sascha Paunovic.
* Add 'group-close-[n]' action to close all windows within specified group.okan2019-02-25-6/+42
| | | | heavily based on a diff from Nam Nguyen.
* simplify screen 'area' usage for initial client placementokan2019-02-23-14/+9
|
* restore order from before r1.248 (vtile/vtile containment changes).okan2019-02-22-3/+2
|
* Rename internal functions to delinate between client remove, delete and xprotookan2019-02-22-24/+25
| | | | | delete; 'window-close' is now the proper action, but 'window-delete' as an alias will remain until more interesting changes require breaking configs.
* Limit vtile/htile actions to clients fully within the screen of master client.okan2019-02-22-13/+30
| | | | from Charles A Daniels.
* fix missing includesokan2019-02-13-4/+5
|
* Stop asking for events (NoEventMask) from menu window once done withokan2018-11-14-1/+2
| | | | the menu (we don't destroy it, only unmap).
* Allow 'transientfor' clients to inherit group and bwidth either during init orokan2018-11-13-23/+28
| | | | | | 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.
* merge from base, from sashan@:okan2018-11-09-2/+3
| | | | | | | | | | | | | | | > - odd condition/test in PF lexer > (and other lexers too) > > This commit rectifies earlier change: > > in the lex... even inside quotes, a \ followed by space or tab should > expand to space or tab, and a \ followed by newline should be ignored > (as a line continuation). compatible with the needs of hoststated > (which has the most strict quoted string requirements), and ifstated > (where one commonly does line continuations in strings). > > OK deraadt@, OK millert@
* Use the original client border width to adjust initial placement of clientsokan2018-11-08-2/+10
| | | | | | | | | | | 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!
* Remove unused prototype; from Ross L Richardson.okan2018-07-16-2/+1
|
* Do not print any parse errors when ~/.cwmrc is missing. Regression introduced inanton2018-02-19-11/+11
| | | | | | revision 1.109 of calmwm.c. ok okan@
* Store the screen's visual type and colormap.okan2018-02-13-10/+13
|
* Consolidate region 'view' and 'area'.okan2018-02-13-11/+6
|
* limit scope of screen_apply_gap()okan2018-02-09-4/+5
|
* Clean up conf_file/homedir and conf_init() bits.okan2018-02-09-47/+31
|
* Use screen's saved view instead of re-querying the server.okan2018-02-06-10/+5
|
* Slightly expand and expose verbose debugging.okan2018-02-04-34/+44
|
* add debugging for x eventsokan2018-02-02-1/+29
|
* Add a simple debug logging mechanism.okan2018-02-02-2/+42
|