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.
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.
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.
OK sthen@ (long long time ago on a different version)
2016-12-01 18:17:52 +00:00
d968a6c1bf
Normalize bind function names, based on a few categories: window, group, menu
...
and pointer.
Replace 'bind' and 'mousebind' options with 'bind-key' and 'bind-mouse',
respectively, replace special 'unmap' keyword with 'unbind-key' and
'unbind-mouse', and additionally allow unbinding all with 'all' keyword.
2016-12-01 17:17:27 +00:00
ae9f900b91
Use an additional check with lstat(2) when d_type is unknown.
...
from James McDonald via portable.
2016-11-15 18:43:09 +00:00
db02592e5c
revert previous; upcoming changes will hopefully deal with these more
...
naturally.
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.
2016-11-15 00:07:03 +00:00
ed22d7a944
Define callbacks, then default bindings.
2016-11-14 21:25:59 +00:00
64e133b289
Reorganize for upcoming changes.
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).
from mpi@
2016-11-14 13:52:33 +00:00
db93599a0f
Make it clear these are flags.
2016-10-24 20:44:08 +00:00
972e28d58c
Remove duplicate check that strsubmatch() already does; while here, fix a
...
comment.
2016-10-24 18:57:12 +00:00
eb43101591
Sprinkle __func__ in appropriate error messages.
2016-10-24 17:39:38 +00:00
ffd60b3cab
Get rid of 'matchname'; it's too surprising to have the menu change during
...
client search as different potential str matches are cycled through. If there's
interest, the only string that doesn't exist in the listing is the window's
class - that can be added of course, but it makes the line too long imho.
2016-10-24 17:16:23 +00:00
b1af1bedd0
clean up search_match_client(); no behaviour change
2016-10-22 19:16:43 +00:00
0bb1be86c6
Refactor callbacks to take a void * so as to not try and generalize into
...
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.
2016-10-18 17:03:30 +00:00
38eac7d7e9
remove another unused proto
2016-10-12 16:11:15 +00:00
15bf703e1c
Rename 2 kbfunc to match closer to what they do
2016-10-06 14:53:52 +00:00
987ee736b9
Add an argument to the callbacks to pass the xevent context, button or
...
key press. This allows to remove a few hacks to duplicate functions only
for behaviour changes; now differing behaviours are pushed down to the
callback. Also will allow for previously unavailable actions to be bind-able
down the road.
2016-10-06 14:41:19 +00:00
66f5360fd4
Check the ptr bounds in the new client during cycling, since not all
...
actions do ptrsave, such as restoring client geometry; adapted from a
diff by Vadim Vygonets.
2016-10-06 14:30:05 +00:00
e7dcb17e1e
More accurate to say 'toggle', rather than 'select', for group[n]/nogroup.
2016-10-05 14:01:23 +00:00
c131620d7b
Add CM-a for 'nogroup' (CM-0 stays for now); update manpage to reflect.
2016-10-05 13:35:17 +00:00
d40820d3f3
Stash wmname into conf.
2016-10-05 13:10:59 +00:00
a37606c63f
When removing xrandr regions, ensure clients are within the bounds of
...
the screen; adapted from an ancient diff from Sviatoslav Chagaev. Things
in this area will likely change, but put this in so it works now and
serves as a reminder.
2016-10-04 20:15:55 +00:00
5c13775d31
Calculate client nameqlen in client_setname(), the only place it's
...
needed/used.
2016-10-04 15:52:32 +00:00
9306c1fbd3
Turn CALMWM_NGROUPS define into variable, ngroups.
2016-10-04 15:18:20 +00:00
8aa5033d12
Start simplifying menu code; and in turn, remove a cursor no longer
...
needed.
2016-10-03 18:43:49 +00:00
03f5dc219e
Defaults are split between defines and conf_init(); normalize these, as
...
well as give 'sticky' groups its own variable.
2016-10-03 14:42:34 +00:00
792f85cde9
For both kb and mouse move, it is possible to grab a client and move it
...
completely off the screen/region; instead, if the pointer is outside of
the client bounds, warp the pointer to the closest edge before moving.
2016-10-03 13:52:17 +00:00
a8a111dffd
client_ptrwarp should not deal with unhiding or raising clients (non ptr
...
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.
2016-10-03 13:41:30 +00:00
1d3a6905f1
remove unused proto
2016-09-30 21:44:51 +00:00
1c54fc079d
Set the initial ptr position during client init, instead of waiting
...
until (maybe) a ptrwarp call. Likewise, explicitly ensure an inbounds ptr
position (same as initial) when saving.
2016-09-30 20:55:54 +00:00
2d8f621b8d
Use instinsic X11 functions for key/btn/ptr grab/ungrab/regrab requests;
...
the one line wrappers provided no value and limited altering calls where
needed; additionally, most of them had but one caller.
2016-09-30 18:28:06 +00:00
8b26a43bf1
Replace mousefunc_sweep_draw() with a generic menu_windraw() using va
...
lists; use it appropriately for both window dimension and position in
the respective mousefunc calls.
ok bryent@
2016-09-30 15:12:19 +00:00
f63b2e2341
Switch to XWindowEvent() pulling out events that match the mask *and*
...
window.
2016-09-30 15:05:02 +00:00
24d6348e52
no need to unmap menu window again
2016-09-29 00:30:40 +00:00
0e8c706633
Mechanical change: move screen menu bits to their own struct.
2016-09-29 00:21:55 +00:00
92b81d3df5
Inline Xft draw and extents wrappers; too much abstraction.
2016-09-28 17:06:33 +00:00
b32989d379
Do not call sweep_draw() too early: don't yet have w/h dimensions; plus
...
we will get a MotionNotify event right away anyway, setting required
parameters.
2016-09-28 15:54:54 +00:00
57b2a6cf79
Continue merging kb and mouse functions: fold
...
mousefunc_menu_{client,cmd,group} into the respective
kbfunc_menu_{client,cmd,group} functions; simply pass a flag down from
config denoting mouse action behaviour.
2016-09-22 14:36:03 +00:00
3947f1268a
Allow ctrl-[ for abort (esc); from Benjamin Scher Purcell
2016-09-20 19:58:54 +00:00
08631748fd
de-static client_inbound()
2016-09-20 19:11:19 +00:00
74e4a3c60b
remove debug that accidentally snuck in
2016-09-20 18:23:12 +00:00
9cf3174696
Get rid of curcc, instead cycle through the queue; removes the need for
...
client_none().
2016-09-20 18:21:32 +00:00
6a53e3a859
During init, query screen for _NET_ACTIVE_WINDOW and set that client as
...
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).
2016-09-16 14:32:02 +00:00
2bbe111cc0
Some clients fail to setup hints at all, so initalize for them; fallout
...
from r1.218 switching to malloc - clearly missed this case.
found the hard way by brynet@
2016-09-14 21:00:24 +00:00
b8933ebcca
Fix-up a few simple uses of client_current(): check CLIENT_ACTIVE flag
...
instead of relying on curcc.
2016-09-14 19:45:33 +00:00
9124a561e3
init label
2016-09-13 17:42:58 +00:00
a94254137c
Limit mouse resize to hints within the client; matches kbd resize
...
behaviour.
2016-09-13 13:42:28 +00:00
e1234b75b8
Switch to just malloc since we need initialize most everything anyway.
2016-09-12 13:48:41 +00:00