9bf750b054
Simplification; use asprintf where appropriate now.
okan
2018-02-02 13:27:25 +00:00
174537f29e
Use func attributes where appropriate.
okan
2018-02-01 15:17:51 +00:00
f34e659ca7
Fix wins comparison declaration since it's unsigned from XQueryTree().
okan
2018-01-23 16:18:59 +00:00
03a2e9cf05
Generate name_to_func[] in a clean and readable fashion.
okan
2018-01-23 16:00:21 +00:00
5324f9a4e3
Shrink tier[] by one after removing matchname in r1.55.
okan
2018-01-23 13:51:39 +00:00
8675b5e158
If the requested group number is invalid, bail but don't kill cwm.
okan
2018-01-23 13:48:49 +00:00
e99f1d4683
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.
okan
2018-01-08 16:21:54 +00:00
50c0a4eef6
Only exec the fallback when in CWM_EXEC_WM state.
okan
2018-01-02 14:04:58 +00:00
5672d5d203
Typo, from Julien Steinhauser.
okan
2017-12-30 22:25:09 +00:00
15ca9c03ba
If the replacement window manager fails to start, restart the fallback (the original invocation of cwm).
okan
2017-12-29 20:09:19 +00:00
6e7dbf5bb7
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.
okan
2017-12-29 20:03:46 +00:00
43db5b55ea
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.
okan
2017-12-29 18:50:43 +00:00
ba75c13953
Merge group_toggle_membership_leave into the buttonrelease event and only do border work for a group/ungroup action.
okan
2017-12-29 16:55:50 +00:00
5ddaed415c
add helper function client_show to bring together like actions for unhide/raise
okan
2017-12-29 12:54:54 +00:00
156681f0a5
Add support for re-exec'ing with SIGHUP; equivalent to the already built-in 'restart' function.
okan
2017-12-27 18:46:18 +00:00
3d7c82936e
Use poll and XNextEvent to replace XNextEvent blocking inside the x11 event handler.
okan
2017-12-27 17:04:35 +00:00
03e5d86952
zap stray that snuck in
okan
2017-12-22 21:30:01 +00:00
dfaf44c0ac
Return the connection number for the display.
okan
2017-12-22 21:27:45 +00:00
c5d03b0853
Fix a few comments and while here, wrap some long lines.
okan
2017-12-22 21:21:44 +00:00
18a53717ae
Use a variable to keep track of flags for menu_filter().
okan
2017-12-19 19:38:43 +00:00
bc5215f41a
Add support for _NET_WM_STATE_SKIP_PAGER and _NET_WM_STATE_SKIP_TASKBAR; eerily close to cwm's 'ignore'.
okan
2017-12-19 14:30:53 +00:00
0fc9d47fb4
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.
okan
2017-12-07 16:25:33 +00:00
f0524fe07a
give command and group menus their own match callbacks
okan
2017-12-07 16:03:10 +00:00
b06ddae624
stash dir into conf since it'll be of use
okan
2017-12-07 15:47:14 +00:00
0d76265e23
organize this a bit better
okan
2017-12-07 15:40:54 +00:00
d9d6b4f88f
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.
okan
2017-11-30 18:18:51 +00:00
8dee1182a2
Use the key names from keysymdef.h in the default key bindings list for clarification.
okan
2017-07-21 15:55:37 +00:00
60ed85c50f
remove extra parentheses
okan
2017-07-14 18:01:46 +00:00
c039e7fb8c
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.
okan
2017-07-14 17:23:38 +00:00
aefc0bf0fb
rename one function, matching others, to help upcoming change
okan
2017-07-12 16:56:26 +00:00
8908e5ec42
drop fgetln.c
Leah Neukirchen
2017-07-11 13:17:45 +02:00
16a2ccc225
drop obsolete comment
okan
2017-05-09 18:43:40 +00:00
113ffcf47e
Alter callbacks to take a struct instead of a growing number of arguments; greatly simplifies upcoming work.
okan
2017-05-09 13:40:18 +00:00
189a735eaa
Ensure clients stay within the viewable bounds on placement, even with empty borders; based on a patch from Vadim Vygonets.
okan
2017-05-05 14:14:19 +00:00
3d6ff6dabf
Clean up, unify and accurately calculate edge distance with client move/resize actions, so as to not lose windows off the edge.
okan
2017-05-01 12:54:55 +00:00
15b9a8fe27
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.
okan
2017-04-25 13:40:33 +00:00
717e6c8167
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.
okan
2017-04-25 12:08:05 +00:00
9b56325908
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.
okan
2017-04-24 12:27:32 +00:00
50dd70afc5
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.
okan
2017-04-24 12:18:04 +00:00
8d9d84d859
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.
okan
2017-02-10 15:00:54 +00:00
172da14d77
Call client_resize instead of client_move after client_placecalc since the size may also change.
okan
2017-02-06 18:10:28 +00:00
96918a06e6
Ensure client stays inbound on key-based resize; based on logic existing in key-based client move; from Vadim Vygonets.
okan
2017-01-05 21:18:20 +00:00
613d11434a
When a window has a user or program specified position, ensure the edge of the final position is at least viewable and warp'able by the difference of bwidth; prevents mapping windows completely off the virtual screen.
okan
2016-12-19 14:17:26 +00:00
44216b65c9
add config migration script
Christian Neukirchen
2016-12-16 14:31:33 +01:00
840dc39292
fix build
Christian Neukirchen
2016-12-16 14:29:50 +01:00
775ba78311
cvsimport
Christian Neukirchen
2016-12-16 13:42:52 +01:00
a7f2ab7497
Add search_print_text(), a default callback for mi->print in menu_filter(). While here, normalize the remaining search_print_* argument paramters.
okan
2016-12-06 21:54:10 +00:00
89e4e7fb14
Consistent use of menuq_add for ssh menu.
okan
2016-12-06 21:09:22 +00:00
2ae4797297
Now that dim.{x,y} are available early, use them before requiring a MotionNotify event.
okan
2016-12-06 21:03:58 +00:00
74092f78aa
Set dim.{x,y} during client_init and update on resize, instead of (re)calculating only when applying hints.
okan
2016-12-06 21:00:13 +00:00
cf4c1879e5
'window-search' is spelled 'menu-window'; the former snuck in during the conversion('menu-window' already existed and was properlly documented); found the hard way by sthen@ while trying to convert.
okan
2016-12-06 15:03:13 +00:00
cfffa70364
Fold unbinding functions into one for each, key and mouse; plugs a leak when unbinding a mouse button bound to a command.
okan
2016-12-02 17:02:17 +00:00
5b7e66a13b
use the correct type
okan
2016-12-02 16:50:19 +00:00
94f681fc90
Tame the number of 'exec' and 'path' search_match wrappers. No functional change now, though more can likely go later, losing the (paritally complete or incomplete/broken) argument completion bits.
okan
2016-12-01 20:28:19 +00:00
b94f0748d8
Switch ssh menu to search_match_text; like group/window/cmd menus, use only a substring match. The previous matching is only intended for the exec menus.
okan
2016-12-01 18:44:09 +00:00
92111e526d
Change 'menu-window' to display all windows; then add 'menu-window-hidden' for the previous behaviour of 'menu-window'. 'menu-window' becomes the default binding; use 'bind-mouse "1" menu-window-hidden' to restore old behaviour for those who prefer.
okan
2016-12-01 18:17:52 +00:00
d968a6c1bf
Normalize bind function names, based on a few categories: window, group, menu and pointer.
okan
2016-12-01 17:17:27 +00:00
ae9f900b91
Use an additional check with lstat(2) when d_type is unknown.
okan
2016-11-15 18:43:09 +00:00
db02592e5c
revert previous; upcoming changes will hopefully deal with these more naturally.
okan
2016-11-15 00:22:02 +00:00
62dc5ae132
Add a wrapper based upon xevent handlers around client move/resize for key and mouse bindings.
okan
2016-11-15 00:07:03 +00:00
ed22d7a944
Define callbacks, then default bindings.
okan
2016-11-14 21:25:59 +00:00
64e133b289
Reorganize for upcoming changes.
okan
2016-11-14 19:56:05 +00:00
98c913cc3b
Remove the (8) default bindings for pointer move since they conflict with default bindings for emacs, which wins; the feature remains and can be bound to whatever users wish with cwmrc(5).
okan
2016-11-14 13:52:33 +00:00