diff options
author | Juri Linkov <juri@jurta.org> | 2014-05-21 00:14:44 +0300 |
---|---|---|
committer | Juri Linkov <juri@jurta.org> | 2014-05-21 00:14:44 +0300 |
commit | a2115113ef8fb235f7863055cedd37a4aaa28d76 (patch) | |
tree | 6ffe2bffd8d282139e9974d3104e126a7704d2f7 /lisp/avoid.el | |
parent | 0a5cfeeecb9e1038f9df3b34b61b797e56213a7b (diff) | |
download | emacs-a2115113ef8fb235f7863055cedd37a4aaa28d76.tar.gz emacs-a2115113ef8fb235f7863055cedd37a4aaa28d76.tar.bz2 emacs-a2115113ef8fb235f7863055cedd37a4aaa28d76.zip |
* lisp/avoid.el (mouse-avoidance-set-mouse-position): Don't raise frame.
(mouse-avoidance-ignore-p): Remove `switch-frame', add `focus-out'.
Add more modifiers: meta, control, shift, hyper, super, alt.
Fixes: debbugs:17439
Diffstat (limited to 'lisp/avoid.el')
-rw-r--r-- | lisp/avoid.el | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/lisp/avoid.el b/lisp/avoid.el index f3013728931..de3958745a4 100644 --- a/lisp/avoid.el +++ b/lisp/avoid.el @@ -52,9 +52,6 @@ ;; ;; - Using this code does slow Emacs down. "banish" mode shouldn't ;; be too bad, and on my workstation even "animate" is reasonable. -;; -;; - It ought to find out where any overlapping frames are and avoid them, -;; rather than always raising the frame. ;; Credits: ;; This code was helped by all those who contributed suggestions, @@ -172,12 +169,8 @@ Analogous to `mouse-position'." (defun mouse-avoidance-set-mouse-position (pos) ;; Carefully set mouse position to given position (X . Y) - ;; Ideally, should check if X,Y is in the current frame, and if not, - ;; leave the mouse where it was. However, this is currently - ;; difficult to do, so we just raise the frame to avoid frame switches. ;; Returns t if it moved the mouse. (let ((f (selected-frame))) - (raise-frame f) (set-mouse-position f (car pos) (cdr pos)) t)) @@ -342,12 +335,18 @@ redefine this function to suit your own tastes." (let ((modifiers (event-modifiers (car last-input-event)))) (or (memq (car last-input-event) '(mouse-movement scroll-bar-movement - select-window switch-frame)) + select-window focus-out)) (memq 'click modifiers) (memq 'double modifiers) (memq 'triple modifiers) (memq 'drag modifiers) - (memq 'down modifiers))))))) + (memq 'down modifiers) + (memq 'meta modifiers) + (memq 'control modifiers) + (memq 'shift modifiers) + (memq 'hyper modifiers) + (memq 'super modifiers) + (memq 'alt modifiers))))))) (defun mouse-avoidance-banish () (if (not (mouse-avoidance-ignore-p)) @@ -403,8 +402,6 @@ Effects of the different modes: * cat-and-mouse: Same as `animate'. * proteus: As `animate', but changes the shape of the mouse pointer too. -Whenever the mouse is moved, the frame is also raised. - \(See `mouse-avoidance-threshold' for definition of \"too close\", and `mouse-avoidance-nudge-dist' and `mouse-avoidance-nudge-var' for definition of \"random distance\".)" |