Commit Graph

893 Commits

Author SHA1 Message Date
okan
ebf71bdff9 Generate name_to_func[] in a clean and readable fashion. 2018-01-23 16:00:21 +00:00
okan
a1afcb2881 Shrink tier[] by one after removing matchname in r1.55. 2018-01-23 13:51:39 +00:00
okan
0ddfd6d206 If the requested group number is invalid, bail but don't kill cwm. 2018-01-23 13:48:49 +00:00
okan
d6b2d66ae6 Quick fix: exit after a failed execvp in u_spawn instead; previously we did in
u_exec, but the introduction of re-exec'ing the previous invocation of cwm if
'exec_wm' failed missed the 'exec' failing path. Will likely split out as a
proper fix.

Odd behaviour reported by Ve Telko.
2018-01-08 16:21:54 +00:00
okan
c0bbe24b5b Only exec the fallback when in CWM_EXEC_WM state.
Broken quit noticed by Ve Telko.
2018-01-02 14:04:58 +00:00
okan
13cc53e0d8 Typo, from Julien Steinhauser. 2017-12-30 22:25:09 +00:00
okan
0bf4ad029c If the replacement window manager fails to start, restart the fallback (the
original invocation of cwm).
2017-12-29 20:09:19 +00:00
okan
cd4212fc60 Convert menu-exec-wm from an abritrary exec menu, into a config-based menu from
which one may configure (wm <name> <path_and_args>) (and choose) specific
window managers to replace the running one. 'wm cwm cwm' is included by
default.

No objections and seems sensible to sthen.
2017-12-29 20:03:46 +00:00
okan
73d422515c As done for buttonrelease, work specific un-cycling and un-highlighting actions
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.
2017-12-29 18:50:43 +00:00
okan
ef78852268 Merge group_toggle_membership_leave into the buttonrelease event and only do
border work for a group/ungroup action.
2017-12-29 16:55:50 +00:00
okan
832edccdc9 add helper function client_show to bring together like actions for unhide/raise 2017-12-29 12:54:54 +00:00
okan
9c1762c16f Add support for re-exec'ing with SIGHUP; equivalent to the already built-in
'restart' function.
2017-12-27 18:46:18 +00:00
okan
bcdf71d022 Use poll and XNextEvent to replace XNextEvent blocking inside the x11 event
handler.
2017-12-27 17:04:35 +00:00
okan
97f922dc38 zap stray that snuck in 2017-12-22 21:30:01 +00:00
okan
9ced81cc97 Return the connection number for the display. 2017-12-22 21:27:45 +00:00
okan
3668d8b165 Fix a few comments and while here, wrap some long lines. 2017-12-22 21:21:44 +00:00
okan
a3cbca55bd Use a variable to keep track of flags for menu_filter(). 2017-12-19 19:38:43 +00:00
okan
c7619bea34 Add support for _NET_WM_STATE_SKIP_PAGER and _NET_WM_STATE_SKIP_TASKBAR; eerily
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.
2017-12-19 14:30:53 +00:00
okan
2c1aed2ec8 remove duplicate ExposureMask 2017-12-15 13:13:17 +00:00
okan
7944040cd2 move variable declarations up, to match everything else 2017-12-13 15:10:17 +00:00
okan
0202b86b58 clean up after previous (noprompt removal) 2017-12-12 15:37:16 +00:00
okan
2a75b150b0 Unconditionally show prompt on menus, regardless of invocation. 2017-12-11 20:58:18 +00:00
okan
6fd1cc10d9 Original idea from Dimitris Papastamos to move windows to corners a while ago;
re-proposed by Julien Steinhauser with an updated diff. Apparently this was in
the original calmnwm.

However, expand the original idea and let clients 'snap' to edges instead,
neatly allowing key bindings that snap to adjacent edges (i.e. corners) as
well. No default bindings assigned.
2017-12-07 16:25:33 +00:00
okan
4210dba245 give command and group menus their own match callbacks 2017-12-07 16:03:10 +00:00
okan
f7999cdcf1 stash dir into conf since it'll be of use 2017-12-07 15:47:14 +00:00
okan
bf36743105 organize this a bit better 2017-12-07 15:40:54 +00:00
okan
52a26c6c07 spacing 2017-12-07 15:39:47 +00:00
okan
ca283e4b1e Revert r1.109 (Switch to XWindowEvent() pulling out events that match the mask
*and* window.) of mousefunc.c. When a client destroys itself while we are
moving or resizing it, XWindowEvent() blocks. Found the hard way by Anton
Lazarov, and Lea°hNeukirchen found the right bit to revert - thanks! Reverting
since the reason to switch from XMaskEvent was unclear.
2017-11-30 18:18:51 +00:00
okan
b853354218 Case matters for menu matching on executables; from ben@lloyd.im. 2017-09-06 14:15:13 +00:00
okan
799b66d344 Use the key names from keysymdef.h in the default key bindings list for
clarification.

from Michael Reed.
2017-07-21 15:55:37 +00:00
okan
62927feb0e remove extra parentheses 2017-07-14 18:01:46 +00:00
okan
91bf263571 Pull over the remaining re-implemented window move/resize functions and create
a wrapper so that the key and mouse based move/resize callbacks can be unified.
This has already been done with other window operations and menus.
2017-07-14 17:23:38 +00:00
okan
ea88c2222f rename one function, matching others, to help upcoming change 2017-07-12 16:56:26 +00:00
okan
71381ebde2 Replace fgetln(3) with POSIX getline(3); inspired by brynet and Ingo.
feedback and ok brynet@
2017-07-10 13:36:58 +00:00
okan
6849988066 fix a few WARNINGS (new sentence, new line and extraneous Pp macro) found with
mandoc -Tlint
2017-07-06 17:09:17 +00:00
okan
ed8a48dfa1 from src, by espie@:
no need to generate y.tab.h if nothing uses it, set YFLAGS to nothing
2017-07-06 17:01:10 +00:00
okan
942a9a421b drop obsolete comment 2017-05-09 18:43:40 +00:00
okan
ba98b33fee Alter callbacks to take a struct instead of a growing number of arguments;
greatly simplifies upcoming work.
2017-05-09 13:40:18 +00:00
okan
7aacbe28e4 Ensure clients stay within the viewable bounds on placement, even with empty
borders; based on a patch from Vadim Vygonets.
2017-05-05 14:14:19 +00:00
okan
c6ed26e240 Clean up, unify and accurately calculate edge distance with client move/resize
actions, so as to not lose windows off the edge.

inspired by diffs (and feedback) from Vadim Vygonets.
2017-05-01 12:54:55 +00:00
okan
8bbf0afc60 Switch bwidth type; unfortunately X11 is inconsistent. 2017-04-26 21:10:54 +00:00
okan
8ed62b1986 The r1.36 menuq_add() conversion did this one wrong; fix by reverting to the
original code which adds to resultentry list, as opposed to the wrong one in
menuq_add(). Fixes crash noticed by at least Rickard Gustafsson.
2017-04-25 13:40:33 +00:00
okan
591ec2708f Remove 'noresult' (and simplify) as it does nothing and makes the logic around
it needless. History doesn't show what this might have been used for in future
iterations.
2017-04-25 12:08:05 +00:00
okan
021d728d1c search_match_path() isn't supposed to return anything. 2017-04-24 15:06:11 +00:00
okan
193dcb4533 Move queue init to caller so it's only called once in a few cases. 2017-04-24 13:35:25 +00:00
okan
9edb3399b6 sort 2017-04-24 13:31:19 +00:00
okan
0b5e66ec4d Raise the previously focused window, instead of the previous window in the
cycle list; seems to match behaviour of other wm's; from Walter Alejandro
Iglesias.
2017-04-24 12:27:32 +00:00
okan
1d5e421839 For {h,v}tile, instead of keeping the master client's {h,v} geometry, expand it
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.
2017-04-24 12:18:04 +00:00
okan
1992827992 Fix group hidden state when a client wants to be on all desktops on start;
reported by Vadim Vygonets with diff, but another approach was taken.
2017-02-10 15:00:54 +00:00
okan
d94ddf7b8f Call client_resize instead of client_move after client_placecalc since the size
may also change.

from Vadim Vygonets
2017-02-06 18:10:28 +00:00