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
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
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
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
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
88785e0af3
Ensure client stays inbound on key-based resize; based on logic existing in
...
key-based client move; from Vadim Vygonets.
2017-01-05 21:18:20 +00:00
okan
62c01a2e19
Add search_print_text(), a default callback for mi->print in menu_filter(). While
...
here, normalize the remaining search_print_* argument paramters.
2016-12-06 21:54:10 +00:00
okan
dd468cc47d
Consistent use of menuq_add for ssh menu.
2016-12-06 21:09:22 +00:00
okan
c6068df369
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
okan
1e51789cc3
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
okan
5a905031f4
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
okan
5c15bd8953
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
okan
c33b352974
revert previous; upcoming changes will hopefully deal with these more
...
naturally.
2016-11-15 00:22:02 +00:00
okan
706ee11014
Add a wrapper based upon xevent handlers around client move/resize for key and
...
mouse bindings.
2016-11-15 00:07:03 +00:00
okan
943e3e7534
Make it clear these are flags.
2016-10-24 20:44:08 +00:00
okan
6eaec44a4a
Sprinkle __func__ in appropriate error messages.
2016-10-24 17:39:38 +00:00
okan
4811ec0433
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
okan
a1a192d258
Rename 2 kbfunc to match closer to what they do
2016-10-06 14:53:52 +00:00
okan
a53fef7b1e
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
okan
dcdbf54e85
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
okan
3881d6ad85
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
okan
374d386034
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
okan
448a04ca44
If a client does not set increment values, use 'moveamount' as a way to
...
scale keyboard based resizes; extend kbfunc_amount().
Behaviour noted by, tested by, and ok sthen@
2015-11-17 14:32:38 +00:00
okan
403542f5b2
more client vs screen context differences
2015-11-12 21:28:03 +00:00
okan
6e55f9d89b
If a client sets hints, honor them for kb resize requests, just like we
...
do for mouse based resize requests.
Based on a patch from Vadim Vygonets.
2015-11-12 18:33:30 +00:00
okan
db0907a53d
Move kb pointer movement out of the kbfunc_client_moveresize since it's
...
got nothing to do with clients, thus doing flags work causes lots of
waste and almost useless jumpy pointer movements; while here, split out
move and resize since they share almost no code, just like mouse client
move/resize; factor out amount and factor. Still wonder why this is
here, but it works now.
2015-11-12 18:26:41 +00:00
okan
a7bbf5197e
Partial revert of replacing screen_area() with region_find(); until a
...
fix for a regression is found; this bug has been around for a long time
it seems, but this change exposed it. Likely need to track clients in to
and out of regions.
2015-11-11 14:22:01 +00:00
okan
72507096a1
Use position on root to figure out region.
2015-11-10 22:06:57 +00:00
okan
0abb5fd0f1
Start cleaning up name vs function differences; replace magic numbers.
2015-11-10 20:05:33 +00:00
okan
ffc7945b8d
Extend region to include both view and work areas; switch to
...
region_find() which no longer needs to recalculate gap each time
a client (or menu) is created or altered. If no RandR, fall back
to display dimensions while building regions instead of during
execution.
2015-11-09 20:03:29 +00:00
okan
c10cac3b1e
On execwm, we should properly release resources before exec'ing into a
...
new window manager; so allow CWM_EXEC_WM to assign new wm to wm_argv and
pass through cwm_status (now EXECWM) so that x_teardown() gets called
before exec'ing the new window manager. Removes the need for a separate
x_restart() now, using new wm_argv; and consolidates errno for execvp.
2015-09-16 17:58:25 +00:00
okan
ae8386de40
Lost fix from r1.112; add comment.
...
Reported (again!) by Peter Kane.
2015-08-28 12:07:28 +00:00
okan
db9c5cf159
Move client cycle grab/ungrab into a more relevant place; while here,
...
update comments about why we need to grab/ungrab the keyboard.
2015-08-27 18:40:09 +00:00
okan
d01e312b01
_NET_WM_STATE_STICKY implies only sticky at the group/desktop level, not
...
position and size; based on discussion with a few.
2015-08-21 16:14:39 +00:00
okan
8809c816d0
Instead of special casing the 'term' and 'lock' commands, go back to
...
keeping them hidden; showing them has apparently caused confusion/angst.
2015-08-21 16:05:55 +00:00
okan
8529d9a1c6
introduce 'groupsearch' for group menu search; matches on either group
...
number/shortcut and/or name.
2015-07-12 14:31:47 +00:00
okan
0cbfba6ca3
revert previous; seems search_match_text() needs mi->text pre-populated.
...
(only used in one place, application menu searching); re-visit later.
broken application menu searching reported by Peter Kane.
2015-07-03 17:11:16 +00:00
okan
cfb0bdf8f5
no longer need to pass down format strings after introducing search_print_cmd
2015-06-30 19:02:24 +00:00
okan
6e095b76d0
Introduce a callback for cmd menu printing, special-casing 'lock' and
...
'term'.
2015-06-30 18:54:12 +00:00
okan
89eefd254e
Shuffle code in kbfunc_ssh so that a missing known_hosts file still
...
allows a (now blank) menu to appear, as opposed to nothing at all.
Behavior reported by Alex Greif.
2015-06-29 14:24:40 +00:00
okan
933ce723de
Mechanical change from xinerama to region backed areas.
2015-06-26 17:17:46 +00:00
okan
c049f12cd4
just populating the ctx is enough since the menu uses a callback and ignores anything else
2015-06-08 15:43:13 +00:00
okan
d6e84c8298
merge kbd and mouse grouptoggle
2015-05-21 00:37:04 +00:00
okan
c199720bcc
Switch to limits.h; replace MAXPATHLEN and MAXHOSTNAMELEN with PATH_MAX
...
and HOST_NAME_MAX+1, respectively.
ok doug@
2015-01-19 14:54:16 +00:00
okan
c9178afc38
these have nothing to do with 'sticky', but rather group membership; rename.
2014-09-27 19:04:32 +00:00