;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:48:26 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/avoid.el
;;; in Emacs version 23.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\302\301\303\304\305\306\307\310&\207" [provide avoid custom-declare-group nil "Make mouse pointer stay out of the way of editing." :prefix "mouse-avoidance-" :group mouse] 8)
#@206 Activate Mouse Avoidance mode.
See function `mouse-avoidance-mode' for possible values.
Setting this variable directly does not take effect;
use either \[customize] or the function `mouse-avoidance-mode'.
(custom-declare-variable 'mouse-avoidance-mode 'nil '(#$ . 738) :set #[(symbol value) "\301\206 \302!\207" [value mouse-avoidance-mode none] 2] :initialize 'custom-initialize-default :type '(choice (const :tag "none" nil) (const banish) (const jump) (const animate) (const exile) (const proteus)) :group 'avoid :require 'avoid :version "20.3")
#@203 Average distance that mouse will be moved when approached by cursor.
Only applies in Mouse Avoidance mode `jump' and its derivatives.
For best results make this larger than `mouse-avoidance-threshold'.
(custom-declare-variable 'mouse-avoidance-nudge-dist '15 '(#$ . 1296) :type 'integer :group 'avoid)
#@58 Variability of `mouse-avoidance-nudge-dist' (which see).
(custom-declare-variable 'mouse-avoidance-nudge-var '10 '(#$ . 1604) :type 'integer :group 'avoid)
#@44 Delay between animation steps, in seconds.
(custom-declare-variable 'mouse-avoidance-animation-delay '0.01 '(#$ . 1766) :type 'number :group 'avoid)
#@165 Mouse-pointer's flight distance.
If the cursor gets closer than this, the mouse pointer will move away.
Only applies in Mouse Avoidance modes `animate' and `jump'.
(custom-declare-variable 'mouse-avoidance-threshold '5 '(#$ . 1922) :type 'integer :group 'avoid)
(byte-code "\301B\302\301!\204 \303\301\304\"\210\305B\302\305!\204 \303\305\304\"\210\306B\302\306!\204- \303\306\307\"\210\310B\302\310!\204< \303\310\304\"\210\311B\302\311!\204K \303\311\304\"\210\312B\302\312!\204Z \303\312\304\"\210\304\207" [current-load-list mouse-avoidance-state default-boundp set-default nil mouse-avoidance-pointer-shapes mouse-avoidance-n-pointer-shapes 0 mouse-avoidance-old-pointer-shape mouse-avoidance-animating-pointer mouse-avoidance-timer] 3)
#@46 Set the shape of the mouse pointer to SHAPE.
(defalias 'mouse-avoidance-set-pointer-shape #[(shape) "\302\301!\205 \303\304!\207" [shape x-pointer-shape boundp set-mouse-color nil] 2 (#$ . 2684)])
(put 'mouse-avoidance-set-pointer-shape 'byte-optimizer 'byte-compile-inline-expand)
#@79 Return the position of point as (FRAME X . Y).
Analogous to `mouse-position'.
(defalias 'mouse-avoidance-point-position #[nil "\303 \304 \3058)\306 \n@	@\307 \245\\\nA@	A\310 \245\\*BB\207" [position x-y edges window-inside-edges posn-at-point 2 selected-frame frame-char-width frame-char-height] 5 (#$ . 2975)])
(defalias 'mouse-avoidance-set-mouse-position #[(pos) "\302 \303!\210\304	@	A#\210)\305\207" [f pos selected-frame raise-frame set-mouse-position t] 4])
#@191 Return t if mouse pointer and point cursor are too close.
MOUSE is the current mouse position as returned by `mouse-position'.
Acceptable distance is defined by `mouse-avoidance-threshold'.
(defalias 'mouse-avoidance-too-close-p #[(mouse) "@AA\306\307\303\"\211\204 \310\n\205 \nW?\205I \311 A@	@=\205H \f??\205H \312\fA@Z!W\205H \312\nAAZ!W*+\207" [mouse frame mouse-y tool-bar-lines mouse-x point frame-parameter nil 0 mouse-avoidance-point-position abs mouse-avoidance-threshold] 4 (#$ . 3455)])
#@146 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.
(defalias 'mouse-avoidance-banish-destination #[nil "\301 \3028\302ZA@)B\207" [pos window-edges 2] 2 (#$ . 3980)])
(defalias 'mouse-avoidance-banish-mouse #[nil "\300\301 !\207" [mouse-avoidance-set-mouse-position mouse-avoidance-banish-destination] 2])
(defalias 'mouse-avoidance-delta #[(cur delta dist var min max) "	Z\n[[\\]\n[\\\n[\\\f	Z\n\\^	\n		ZW\203. \306\211\n	\f	ZV\203< \306\211\n\203N \nW\203N \n\202\242 	\203` 	W\203` \202\242 	\203q \307W\203q 	\202\242 \203\203 W\203\203 \202\242 \203\223 W\203\223 \202\242 \206\242 	\206\242 \206\242 \307,\207" [min cur dist var max R2 nil 0 L2 R1 L1 delta] 7])
(put 'mouse-avoidance-delta 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mouse-avoidance-nudge-mouse #[nil "\306 \211@A\307 \211\211A@\211A@\211A@\211A@\n@\310!@Z\fS !\"Z![ [\\]![ \\! [\\Z! \\^#$%&%ZW\203} \311\211&%$ZV\203\215 \311\211$#&\203\237 \"&W\203\237 &\202\366 %\203\261 \"%W\203\261 \"\202\366 %\203\302 \"\312W\203\302 %\202\366 $\203\324 \"$W\203\324 $\202\366 #\203\346 \"#W\203\346 \"\202\366 #\206\366 %\206\366 $\206\366 \312.\n'\nA\310!AZS !\"Z![ [\\]![ \\! [\\Z! \\^#$%&%ZW\203Q\311\211&%$ZV\203a\311\211$#&\203s\"&W\203s&\202\312%\203\205\"%W\203\205\"\202\312%\203\226\"\312W\203\226%\202\312$\203\250\"$W\203\250$\202\312#\203\272\"#W\203\272\"\202\312#\206\312%\206\312$\206\312\312.\n(@'\\A(\\B)\313=\204\353)\314=\203I\315\316\317\245]*+\320,+\321X\203A\322\n@\323+'_!\\\nA\323+(_!\\B!\210+*\\+)\314=\2039\324 -\325\326!\2038-\327\311!\210)\330.!\210\202\371\311\211,*\202X\322A@'\\AA(\\B!.\n\207" [cur cur-frame cur-pos pos wleft wtop mouse-position window-edges random nil 0 animate proteus 0.0 0.1 1.0 t 1 mouse-avoidance-set-mouse-position round mouse-avoidance-random-shape boundp x-pointer-shape set-mouse-color sit-for wright wbot mouse-avoidance-nudge-var mouse-avoidance-state mouse-avoidance-nudge-dist max min var dist delta R2 L2 R1 L1 deltax deltay mouse-avoidance-mode incr i mouse-avoidance-animating-pointer shape mouse-avoidance-animation-delay] 8])
#@213 Return a random cursor shape.
This assumes that any variable whose name begins with x-pointer- and
has an integer value is a valid cursor shape.  You might want to
redefine this function to suit your own tastes.
(defalias 'mouse-avoidance-random-shape #[nil "\204 \303\304\305\306	\307#\"\211G\310\n!8\207" [mouse-avoidance-pointer-shapes obarray mouse-avoidance-n-pointer-shapes mapcar #[(x) "\301!J\207" [x intern] 2] all-completions "x-pointer-" #[(x) "\301!\205	 J\250\207" [x boundp] 2] random] 7 (#$ . 6428)])
(defalias 'mouse-avoidance-ignore-p #[nil "\305 	\206M \211A@)?\206M @\306 =?\206M :\205M @9\205M \307@!@\310>\206L \311\f>\206L \312\f>\206L \313\f>\206L \314\f>\206L \315\f>))\207" [mp executing-kbd-macro x last-input-event modifiers mouse-position selected-frame event-modifiers (mouse-movement scroll-bar-movement select-window switch-frame) click double triple drag down] 3])
(defalias 'mouse-avoidance-banish #[nil "\300 ?\205 \301 \207" [mouse-avoidance-ignore-p mouse-avoidance-banish-mouse] 1])
(defalias 'mouse-avoidance-exile #[nil "\302 ?\205> \303 	\204 \304!\203 \305 \202= 	\205= \304	!?\205= @\306 =\203: A\307 \232\203: \310	A!\210\311\211)\207" [mp mouse-avoidance-state mouse-avoidance-ignore-p mouse-position mouse-avoidance-too-close-p mouse-avoidance-banish-mouse selected-frame mouse-avoidance-banish-destination mouse-avoidance-set-mouse-position nil] 2])
(defalias 'mouse-avoidance-fancy #[nil "?\205& \302 ?\205& \303\304 !\205& \304 \305 \210\306 	@=?\205% \307\310	\")\207" [mouse-avoidance-animating-pointer old-pos mouse-avoidance-ignore-p mouse-avoidance-too-close-p mouse-position mouse-avoidance-nudge-mouse selected-frame apply set-mouse-position] 3])
#@1120 Set Mouse Avoidance mode to MODE.
MODE should be one of the symbols `banish', `exile', `jump', `animate',
`cat-and-mouse', `proteus', or `none'.

If MODE is nil, toggle mouse avoidance between `none' and `banish'
modes.  Positive numbers and symbols other than the above are treated
as equivalent to `banish'; negative numbers and `-' are equivalent to `none'.

Effects of the different modes:
 * banish: Move the mouse to the upper-right corner on any keypress.
 * exile: Move the mouse to the corner only if the cursor gets too close,
     and allow it to return once the cursor is out of the way.
 * jump: If the cursor gets too close to the mouse, displace the mouse
     a random distance & direction.
 * animate: As `jump', but shows steps along the way for illusion of motion.
 * 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".)
(defalias 'mouse-avoidance-mode #[(&optional mode) "\306=\203 \307	\203 \310	!\210\311\n\312=\203' \313\305!\203& \f\314\311!\210)\315=\2032 \311\202\235 \316=\204D \307=\204D \312=\203\\ \317\320\321\322#\323\211B\313\305!\205X \202\235 \324=\203p \317\325\321\326#\311\202\235 \327=\204\220 \321=\204\220 \204\204 \n\203\220 \203\233 \330!\323V\203\233 \317\331\321\332#\327\202\235 \311\333 \207" [mode mouse-avoidance-timer mouse-avoidance-mode mouse-avoidance-old-pointer-shape shape x-pointer-shape cat-and-mouse animate cancel-timer nil proteus boundp set-mouse-color none jump run-with-idle-timer 0.1 t mouse-avoidance-fancy 0 exile 0.1 mouse-avoidance-exile banish prefix-numeric-value 0.1 mouse-avoidance-banish force-mode-line-update mouse-avoidance-state] 4 (#$ . 8167) (list (intern (completing-read "Select cursor avoidance technique (SPACE for list): " '(("banish") ("exile") ("jump") ("animate") ("cat-and-mouse") ("proteus") ("none")) nil t)))])
(byte-code "\203 \300!\210\300\207" [mouse-avoidance-mode] 2)
