;ELC ;;; Compiled ;;; in Emacs version 27.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@45 Internal to `mouse-drag-secondary-pasting'. (defvar mouse-copy-last-paste-start nil (#$ . 408)) #@45 Internal to `mouse-drag-secondary-pasting'. (defvar mouse-copy-last-paste-end nil (#$ . 510)) #@99 Set to enable mouse-copy-work-around-drag-bug. See `mouse-copy-work-around-drag-bug' for details. (defvar mouse-copy-have-drag-bug nil (#$ . 610)) #@628 Code to work around a bug in post-19.29 Emacs: it drops mouse-drag events. The problem occurs under XFree86-3.1.1 (X11R6pl11) but not under X11R5, and under post-19.29 but not early versions of Emacs. 19.29 and 19.30 seems to drop mouse drag events sometimes. (Reproducible under XFree86-3.1.1 (X11R6pl11) and XFree86-3.1.2 under Linux 1.2.x. Doesn't occur under X11R5 and SunOS 4.1.1.) To see if you have the problem: Disable this routine (with (setq mouse-copy-have-drag-bug nil)). Click and drag for a while. If highlighting stops tracking, you have the bug. If you have the bug (or the real fix :-), please let me know. (defalias 'mouse-copy-work-around-drag-bug #[(start-event end-event) "\212\306!\307\n!\310 \211@\262!\211q\210\311\312 !\312 !\211:\2030\3138\250\2030\3138\262\2023\314\262S#\211@ A@\203P\315#\210\202Z\316\312!\"\317\320\321#\210\fq\210\322\323{\".\207" [start-event start-posn end-event end-posn end-buffer range event-start event-end window-buffer mouse-start-end posn-point 2 1 move-overlay make-overlay overlay-put face secondary-selection gui-set-selection SECONDARY beg end mouse-secondary-overlay] 7 (#$ . 764)]) #@242 Drag out a secondary selection, then paste it at the current point. To test this function, evaluate: (global-set-key [M-down-mouse-1] \='mouse-drag-secondary-pasting) put the point at one place, then click and drag over some other region. (defalias 'mouse-drag-secondary-pasting #[(start-event) "\203% \211:\203\3058\250\203\3058\262\202\306\262\305Y\203%\n|\210\307 !\203? \2034\310 \f\"\210`\311\312!c\210`\211\207\313\211\207" [mouse-copy-last-paste-start start-event mouse-copy-last-paste-end mouse-copy-have-drag-bug last-input-event 2 1 mouse-drag-secondary mouse-copy-work-around-drag-bug gui-get-selection SECONDARY nil] 3 (#$ . 1959) "e"]) #@352 Kill the text in the secondary selection, but leave the selection set. This command is like \[mouse-kill-secondary] (that is, the secondary selection is deleted and placed in the kill ring), except that it also leaves the secondary buffer active on exit. This command was derived from mouse-kill-secondary in emacs-19.28 by johnh@ficus.cs.ucla.edu. (defalias 'mouse-kill-preserving-secondary #[nil "\303 \211\211GS\234\304\n! <\203\305\306 !\211@\262!\202p=\204&\307\310!\210*r\304\n!q\210\311\312\n!\313\n!\")\207" [keys click mouse-secondary-overlay this-command-keys overlay-buffer window-buffer event-start error "Select or click on the buffer where the secondary selection is" kill-region overlay-start overlay-end] 5 (#$ . 2636) nil]) #@69 Sweep out a secondary selection, then move it to the current point. (defalias 'mouse-drag-secondary-moving #[(start-event) "\301!\205 \302 \210\303\304!c\207" [start-event mouse-drag-secondary mouse-kill-preserving-secondary gui-get-selection SECONDARY] 2 (#$ . 3393) "e"]) (provide 'mouse-copy)