;ELC   
;;; Compiled by rms@psilocin.gnu.ai.mit.edu on Fri May 30 01:17:59 1997
;;; from file /home/fsf/rms/e19/lisp/mouse-copy.el
;;; in Emacs version 19.34.94.17
;;; with bytecomp version 2.28
;;; with all optimizations.
;;; This file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`mouse-copy.el' was compiled for Emacs 19.29 or later"))


#@45 Internal to `mouse-drag-secondary-pasting'.
(defvar mouse-copy-last-paste-start nil (#$ . 548))
#@45 Internal to `mouse-drag-secondary-pasting'.
(defvar mouse-copy-last-paste-end nil (#$ . 650))
#@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 (#$ . 750))
#@630 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. (Reproducable 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) "Š‰A@)Ä	8:ƒ Ä‚ Å	8)Ç‰@)!‰	qˆÊ\n‰A@:ƒ< A@@‚@ A@)‰A@:ƒT A@@‚X A@)Ä	8¨ƒh Ä	8‚i Å)S#‰@\fA@ƒ‰ Ï\f#ˆ‚§ Ð\f‰A@:ƒŸ A@@‚£ A@)\"ÑÒÓ#ˆ	qˆÔÕ\f{\".‡" [start-event event start-posn end-event 2 1 end-posn window-buffer position end-buffer mouse-start-end range beg end mouse-secondary-overlay move-overlay make-overlay overlay-put face secondary-selection x-set-selection SECONDARY] 6 (#$ . 904)])
#@240 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) "ƒ 	Ã\n8¨ƒ Ã\n8‚ Ä)ÃYƒ |ˆÆ	!ƒ: ƒ/ È		\"ˆ`ÊË!cˆ`‰‡Ì‰‡" [mouse-copy-last-paste-start start-event event 2 1 mouse-copy-last-paste-end mouse-drag-secondary mouse-copy-have-drag-bug mouse-copy-work-around-drag-bug last-input-event x-get-selection SECONDARY nil] 3 (#$ . 2054) "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 "À ‰‰GSœÃ\f!\n<ƒ ÅÆÇ\n!!!‚ p=„$ ÈÉ!ˆ*ŠÃ\f!qˆÊË\f!Ì\f!\")‡" [this-command-keys keys click overlay-buffer mouse-secondary-overlay window-buffer posn-window event-start error "Select or click on the buffer where the secondary selection is" kill-region overlay-start overlay-end] 6 (#$ . 2647) nil])
#@69 Sweep out a secondary selection, then move it to the current point.
(defalias 'mouse-drag-secondary-moving #[(start-event) "À	!… Â ˆÃÄ!c‡" [mouse-drag-secondary start-event mouse-kill-preserving-secondary x-get-selection SECONDARY] 2 (#$ . 3353) "e"])
(provide 'mouse-copy)
