okan
2fc191f978
Ensure the pointer stays within client bounds after a window 'snap' (to edge).
...
reported by Stefan Hagen.
2020-01-21 15:50:03 +00:00
okan
781af9c998
Because cwm warps the pointer during a client move (to stay within the 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@
2019-08-13 18:45:38 +00:00
okan
6131e36f8a
Fix regression from r1.107 (lost a return); kettenis@ pointed out the high
...
potential for a use-after-free (true!) where kn@ ran into the regression using
an app that actually exercised the XGrabPointer() failure path.
2019-08-12 00:52:36 +00:00
kn
fdb841c3b0
Add application section
...
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
2019-07-09 21:38:44 +00:00
kn
40000724cc
command uses execvp(3) not execve(2)
...
util.c:u_exec() has been doing so since import.
2019-07-02 23:37:47 +00:00
tim
25b699b582
Plug a memory leak in log_debug(); OK okan@
2019-04-29 19:03:20 +00:00
tim
3f1caab46a
Handle _NET_WM_NAME changes.
...
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@
2019-04-29 19:02:21 +00:00
okan
9a7528f5b9
Check the atom type on propertynotify before iterating.
2019-03-11 15:25:46 +00:00
okan
e55c0d48fa
use screen_find() for xrandr crtc changes
2019-03-10 22:53:11 +00:00
okan
5bc2098c6f
Find the managed screen from the parent window for client_current().
2019-03-10 20:38:28 +00:00
okan
5071baa2aa
Print window id in hex; while here, remove unnecessary newline.
2019-03-08 20:33:30 +00:00
okan
4470a247c8
Similar to keypress event, fetch the screen from the event root window in the
...
buttonpress handler; bail if we don't manage the screen. Allows us to find the
current client based on the screen/event root.
2019-03-08 17:40:43 +00:00
okan
eab4b7e4b5
extend verbose logging for key/button events
2019-03-08 15:04:39 +00:00
okan
bf43b62414
[keypress event] turns out we've been checking the wrong window for a matching
...
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.
2019-03-08 14:48:02 +00:00
okan
2a3c2b5231
add parans for readibility
2019-03-08 13:17:26 +00:00
okan
7c45b87622
Teach client_current() to use a screen to find the current client instead of
...
iterating over all (fallback if no screen provided for now). Initially convert
trivial uses of client_current().
2019-03-07 14:28:17 +00:00
okan
01be5b4e4a
check cc->gc directly
2019-03-07 13:24:44 +00:00
okan
823566a653
zip extra lines
2019-03-07 13:24:10 +00:00
okan
aa79351d2e
gc clientq inside groups, instead use the better maintained one per-screen
2019-03-07 13:14:41 +00:00
okan
b26202724a
shuffle deck chairs: rename group actions to match intent for clarity
2019-03-07 12:54:21 +00:00
okan
9efa6c8c85
same thing as screen_find()
2019-03-06 13:32:19 +00:00
okan
0bda8f7606
Separate out the menu window from the client resize/move geom window; in each
...
case, create and destroy on-demand. Isolate more menu specific code.
2019-03-04 19:28:17 +00:00
okan
9d5b0e5d22
fix a few misplaced (and misnamed) ewmh root window functions
2019-03-04 14:48:59 +00:00
okan
fda68a40de
_NET_WORKAREA needs ngroups, so screen_update_geometry() needs to come after
...
conf_group().
2019-03-04 14:36:02 +00:00
okan
0c0551b8bf
simplify xftcolor config
2019-03-04 13:33:39 +00:00
okan
9d25218458
Tie group number and name together during config.
2019-03-01 14:32:01 +00:00
okan
ae231f67d0
Move the group index (desktop number) check to the only 2 callers that require
...
checking due to ewmh.
2019-02-28 23:26:12 +00:00
okan
880b5cda3f
Ensure we don't action on the last group when the requested one is not found.
2019-02-28 23:20:52 +00:00
okan
8cd6d1154c
Selectively hide and show clients based on state; merge client_unhide() and
...
client_show().
2019-02-28 13:11:53 +00:00
okan
cd4be1c17a
Add a configtest flag (-n).
...
based on a diff from Sascha Paunovic.
2019-02-25 18:07:48 +00:00
okan
a5ba9aa9da
Add 'group-close-[n]' action to close all windows within specified group.
...
heavily based on a diff from Nam Nguyen.
2019-02-25 16:40:49 +00:00
okan
43cd19378e
simplify screen 'area' usage for initial client placement
2019-02-23 19:17:17 +00:00
okan
953cf1ce89
restore order from before r1.248 (vtile/vtile containment changes).
2019-02-22 20:52:13 +00:00
okan
535cf541c8
Rename internal functions to delinate between client remove, delete and xproto
...
delete; 'window-close' is now the proper action, but 'window-delete' as an
alias will remain until more interesting changes require breaking configs.
2019-02-22 19:40:32 +00:00
okan
044ef5a8cd
Limit vtile/htile actions to clients fully within the screen of master client.
...
from Charles A Daniels.
2019-02-22 14:39:18 +00:00
okan
c307e37dcb
fix missing includes
2019-02-13 15:43:24 +00:00
okan
695eb1d8e5
Stop asking for events (NoEventMask) from menu window once done with
...
the menu (we don't destroy it, only unmap).
2018-11-14 19:22:51 +00:00
okan
194589eb6b
Allow 'transientfor' clients to inherit group and bwidth either during init or
...
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.
2018-11-13 17:37:13 +00:00
okan
268deed916
merge from base, from sashan@:
...
> - 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@
2018-11-09 16:00:54 +00:00
okan
a63b87e315
Use the original client border width to adjust initial placement of clients
...
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!
2018-11-08 15:49:42 +00:00
okan
9999c3e6e0
Remove unused prototype; from Ross L Richardson.
2018-07-16 14:19:23 +00:00
anton
0551094182
Do not print any parse errors when ~/.cwmrc is missing. Regression introduced in
...
revision 1.109 of calmwm.c.
ok okan@
2018-02-19 19:29:42 +00:00
okan
b1929b5ed6
Store the screen's visual type and colormap.
2018-02-13 15:43:15 +00:00
okan
13763662c9
Consolidate region 'view' and 'area'.
2018-02-13 15:06:22 +00:00
okan
e6bf7429b3
limit scope of screen_apply_gap()
2018-02-09 20:08:07 +00:00
okan
1a5f80bd0b
Clean up conf_file/homedir and conf_init() bits.
2018-02-09 19:54:54 +00:00
okan
f3211427c1
Use screen's saved view instead of re-querying the server.
2018-02-06 15:05:20 +00:00
okan
14c17b5f9b
Slightly expand and expose verbose debugging.
2018-02-04 22:56:26 +00:00
okan
8623c7add7
add debugging for x events
2018-02-02 13:50:22 +00:00
okan
34e15dbd7a
Add a simple debug logging mechanism.
2018-02-02 13:40:55 +00:00