(defvar sup-mouse-fast-select-window nil "\ *Non-nil for mouse hits to select new window, then execute; else just select.") (defconst mouse-left 0) (defconst mouse-center 1) (defconst mouse-right 2) (defconst mouse-2left 4) (defconst mouse-2center 5) (defconst mouse-2right 6) (defconst mouse-3left 8) (defconst mouse-3center 9) (defconst mouse-3right 10) (defun sup-mouse-report nil "\ This function is called directly by the mouse, it parses and executes the mouse commands. L move point * |---- These apply for mouse click in a window. 2L delete word | 3L copy word | If sup-mouse-fast-select-window is nil, C move point and yank * | just selects that window. 2C yank pop | R set mark * | 2R delete region | 3R copy region | on modeline on \"scroll bar\" in minibuffer L scroll-up line to top execute-extended-command C proportional goto-char line to middle mouse-help R scroll-down line to bottom eval-expression" (interactive) (byte-code "?O*!O*!OO!U \"U !U  U S=?.* Y 8S= T 8SY B 8Z%^ a 8Z%^f? Ufa Ufc ,I Te Z\\,I e [$T\",I Ufc \",~Ufu \"^ia!,~Ufe \"^Si`ia!^`\")^?,~ Uf+d ^e \"^n ,~UfBd ^e \"^oo `\",~Uf^d ^e \"^io `\"^?,~ Ufte \"^?^i ,~U.~oa!,df- Uf"oo!,? Uf o/!,? U.?ou!,d?da !^?+d UfEe \",d UfYd ^e \"^n ,d U.de \"^?^i . +" [buttons x y window edges old-window in-minibuf-p same-window-p in-modeline-p in-scrollbar-p mouse-left mouse-right mouse-center t mouse-2left mouse-3left this-command mouse-2right mouse-3right mouse-2center sup-mouse-fast-select-window nil sup-get-tty-num 59 99 sup-pos-to-window window-edges selected-window screen-height 3 2 0 1 select-window scroll-up scroll-down / * window-width beginning-of-line what-cursor-position window-height + sup-move-point-to-x-y kill-word copy-region-as-kill forward-word yank push-mark exchange-point-and-mark kill-region mark yank-pop call-interactively eval-expression execute-extended-command describe-function sup-mouse-report] 54)) (defun sup-get-tty-num (term-char) "\ Read from terminal until TERM-CHAR is read, and return intervening number. Upon non-numeric not matching TERM-CHAR signal an error." (byte-code "Ar AY. =+, (defun sup-move-point-to-x-y (x y) "\ Position cursor in window coordinates. X and Y are 0-based character positions in the window." (byte-code "A!^A !+" [y x move-to-window-line move-to-column] 3)) (defun sup-pos-to-window (x y) "\ Find window corresponding to screen coordinates. X and Y are 0-based character positions on the screen." (byte-code "A A A =?.* .