b1378ce77b
Summary: The original next window selection of winlist is weak. It searches the next window with the following conditions: 1. Next non-overlaped window in the direction of user's selection (up,down,right,left). 2. The next window has to be the closest window from the currently selected window (calculated from shortest distance from each window's border, in the direction of selection) 3. the second distant requirement is this: delta2_next = abs(ec_orig->x - ec_orig->w / 2 - ec->x + ec->w/2); * Which I believe is a mistake, should be: delta2_next = abs(ec_orig->x + ec_orig->w / 2 - ec->x + ec->w/2); These two conditions are weak, and they sometimes can result in unexpected selection to the user. The enclosed patch enhances the next window selection: 1) A next window selection can be the window that's overlapping with the in-focused window. 2) calculates the next window from the center of the currently focused window to the next window, and it also takes into account directionality (a window that's farther in the direction of selection has a better chance of being selected then a window that's closer in the direction of selection, but offset-ed in the lateral direction.) Test Plan: 1. Create 4 key binds for "next window to left, right, up, down". 2. Open up 4 different windows and position them in odd/random positions. 3. Try to navigate to each window (with the winlist shortcut keys) before this patch. 4. Try with this patch, and evaluate if the window selection is more **PREDICTABLE**. Reviewers: zmike Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2661 I fixed the weridness and it behaves much more reliably now with "tall" or "wide" windows. also fixed some formatting etc. etc. - this now works better and now if u alt+tab AND then use arrow keys while holding alt... it'll navigate around geometrically rather nicely. so big fixes and good for pointing out the simpleness of the original code. :) - raster @feat |
||
---|---|---|
config | ||
data | ||
doc | ||
m4 | ||
pkgbuild | ||
po | ||
src | ||
.arcconfig | ||
.gitignore | ||
.mailmap | ||
AUTHORS | ||
BUGS | ||
COPYING | ||
ChangeLog | ||
INSTALL | ||
Makefile.am | ||
NEWS | ||
README | ||
README.wayland | ||
autogen.sh | ||
configure.ac | ||
e19_workdir_setup.sh | ||
enlightenment.pc.in | ||
enlightenment.spec.in | ||
netwm.txt | ||
x-ui.sh | ||
xdebug.sh |
README
Please report bugs and send patches to phab.enlightenment.org Enlightenment 0.19.0 Requirements: ------------- Must: efl elementary libc libm libX11 libXext xcb xcb-shape xcb-keysyms Heavily suggested: evas_generic_loaders (all loaders) NOTE: Users of DR16 will need to rename the $prefix/bin/enlightenment file prior to installing DR19 or it will be overwritten. You can also use the configure --prefix option to put enlightenment in a separate tree of its own (recommended) like: ./configure --prefix=/usr/local/e19 You will, as usual, need to add the subsequent bin dir to your $PATH etc. NOTES: * if you do not want security issues make sure sysactions.conf is in /etc/enlightenment (not PREFIX/etc/enlightenment) as this is the first place it looks at. This file is intended to be customized by packagers and system integrators to match your policies and scripts/tools.