GNU bug report logs -
#10165
[PATCH] Allow setting corner in mouse avoidance mode.
Previous Next
Full log
View this message in rfc822 format
As a reminder, I will have to put back the original behavior in
defcustom, that is to move the mouse by default in the
top right corner i.e
(defcustom mouse-avoidance-banish-destination '(right . top)
Thierry Volpiatto <thierry.volpiatto <at> gmail.com> writes:
>> Hi all,
>> there was nothing except modifying function
>> `mouse-avoidance-banish-destination' to set in which corner mouse is
>> banish.
>> This patch allow setting this through
>> `mouse-avoidance-banish-destination' user variable like this:
>> (left . top) or (right . bottom) etc...
>
> Thanks. We're in feature freeze---please file this in the bug database
> so it doesn't get forgotten.
>
>
> # HG changeset patch
> # User Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
> # Date 1322632617 -3600
> # Node ID 885228e9f341f392fc6886bf2855a66c5bdba6c5
> # Parent c511f9c3f7a2cab8b3684b2f1ea4782176988ac6
> * lisp/avoid.el: Allow setting in which corner banish move the mouse.
> (mouse-avoidance-banish-destination): New user variable, a cons pair to specify banish corner position.
> (mouse-avoidance-banish-destination): Set destination according to mouse-avoidance-banish-destination value.
>
> diff --git a/lisp/avoid.el b/lisp/avoid.el
> --- a/lisp/avoid.el
> +++ b/lisp/avoid.el
> @@ -115,6 +115,11 @@
> :type 'integer
> :group 'avoid)
>
> +(defcustom mouse-avoidance-banish-destination '(left . top)
> + "Set the position to which Mouse Avoidance mode `banish' moves the mouse."
> + :group 'avoid
> + :type 'list)
> +
> ;; Internal variables
> (defvar mouse-avoidance-state nil)
> (defvar mouse-avoidance-pointer-shapes nil)
> @@ -183,10 +188,18 @@
>
> (defun mouse-avoidance-banish-destination ()
> "The position to which Mouse Avoidance mode `banish' moves the mouse.
> -You can redefine this if you want the mouse banished to a different corner."
> - (let* ((pos (window-edges)))
> - (cons (- (nth 2 pos) 2)
> - (nth 1 pos))))
> +If you want the mouse banished to a different corner set
> +`mouse-avoidance-banish-destination' as you need."
> + (let* ((pos (loop for v in (window-edges)
> + for k in '(left top right bottom)
> + collect (cons k v)))
> + (side (car mouse-avoidance-banish-destination))
> + (up-down (cdr mouse-avoidance-banish-destination))
> + (fn (case side
> + (left '+)
> + (right '-))))
> + (cons (funcall fn (assoc-default side pos) 2)
> + (assoc-default up-down pos))))
>
> (defun mouse-avoidance-banish-mouse ()
> ;; Put the mouse pointer in the upper-right corner of the current frame.
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
This bug report was last modified 13 years and 91 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.