Mercurial > emacs
changeset 5750:e1153522d5f1
(mouse-sel-version): Don't base version number on
RCS revision. Updated to version 2.0.
(mouse-sel-set-selection-function, mouse-sel-get-selection-function,
mouse-sel-check-selection-function):
Check whether X11 functions are bound when setting defaults.
(mouse-extend): Check whether modify-frame-parameters is bound before
calling it. Add support to kill region with double-mouse-3.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 02 Feb 1994 23:19:11 +0000 |
parents | 4555bdf89b40 |
children | 59280129eaac |
files | lisp/mouse-sel.el |
diffstat | 1 files changed, 27 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mouse-sel.el Wed Feb 02 22:53:39 1994 +0000 +++ b/lisp/mouse-sel.el Wed Feb 02 23:19:11 1994 +0000 @@ -4,7 +4,7 @@ ;; Author: Mike Williams <mikew@gopher.dosli.govt.nz> ;; Keywords: mouse -;; Version: $Revision: 1.20 $ +;; Version: 2.0 ;; This file is part of GNU Emacs. @@ -18,7 +18,7 @@ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. -;;; Commentary: +;;; Commentary: =========================================================== ;; ;; This module provides multi-click mouse support for GNU Emacs versions ;; 19.18 and later. I've tried to make it behave more like standard X @@ -42,15 +42,19 @@ ;; ;; * Clicking mouse-2 pastes contents of primary selection. ;; -;; * Pressing mouse-2 while selecting or extending copies selected text +;; * Pressing mouse-2 while selecting or extending copies selection ;; to the kill ring. Pressing mouse-1 or mouse-3 kills it. +;; +;; * Double-clicking mouse-3 also kills selection. ;; -;; This module requires my thingatpt.el module, version 1.14 or later, which -;; it uses to find the bounds of words, lines, sexps, etc. +;; This module requires my thingatpt.el module, which it uses to find the +;; bounds of words, lines, sexps, etc. ;; ;; Thanks to KevinB@bartley.demon.co.uk for his useful input. ;; -;; You may also want to use one or more of following: +;;--- Customisation ------------------------------------------------------- +;; +;; * You may want to use none or more of following: ;; ;; ;; Enable region highlight ;; (transient-mark-mode 1) @@ -61,8 +65,6 @@ ;; ;; Enable pending-delete ;; (delete-selection-mode 1) ;; -;;--- Customisation ------------------------------------------------------- -;; ;; * You can control the way mouse-sel binds it's keys by setting the value ;; of mouse-sel-default-bindings before loading mouse-sel. ;; @@ -141,7 +143,7 @@ ;; nesting level. This also means the selection cannot be extended out ;; of the enclosing nesting level. This is INTENTIONAL. -;;; Code: +;;; Code: ================================================================= (provide 'mouse-sel) @@ -150,10 +152,8 @@ ;;=== Version ============================================================= -(defconst mouse-sel-version (substring "$Revision: 1.20 $" 11 -2) - "The revision number of mouse-sel (as string). The complete RCS id is: - - $Id: mouse-sel.el,v 1.20 1993/09/30 23:57:32 mike Exp $") +(defconst mouse-sel-version "2.0" + "The version number of mouse-sel (as string).") ;;=== User Variables ====================================================== @@ -186,21 +186,21 @@ used on windowing systems other than X Windows.") (defvar mouse-sel-set-selection-function - (if (eq window-system 'x) + (if (fboundp 'x-set-selection) (function (lambda (s) (x-set-selection 'PRIMARY s))) (function (lambda (s) (setq mouse-sel-selection s)))) "Function to call to set selection. Called with one argument, the text to select.") (defvar mouse-sel-get-selection-function - (if (eq window-system 'x) + (if (fboundp 'x-get-selection) 'x-get-selection (function (lambda () mouse-sel-selection))) "Function to call to get the selection. -Called with no argument, it should return the selected text.") +Called with no argument.") (defvar mouse-sel-check-selection-function - (if (eq window-system 'x) + (if (fboundp 'x-selection-owner-p) 'x-selection-owner-p nil) "Function to check whether emacs still owns the selection. @@ -278,7 +278,8 @@ (overlay-get mouse-drag-overlay 'face)) ;; Bar cursor - (modify-frame-parameters (selected-frame) '((cursor-type . bar))) + (if (fboundp 'modify-frame-parameters) + (modify-frame-parameters (selected-frame) '((cursor-type . bar)))) ;; Handle dragging (unwind-protect @@ -390,11 +391,16 @@ ((memq (car-safe last-input-event) '(down-mouse-1 down-mouse-3)) (kill-region overlay-start overlay-end) (deactivate-mark) - (read-event) (read-event))))) + (read-event) (read-event)) + ((eq (car-safe last-input-event) 'double-mouse-3) + (kill-region overlay-start overlay-end) + (deactivate-mark))))) ;; Restore cursor - (modify-frame-parameters (selected-frame) - (list (cons 'cursor-type orig-cursor-type))) + (if (fboundp 'modify-frame-parameters) + (modify-frame-parameters + (selected-frame) (list (cons 'cursor-type orig-cursor-type)))) + ;; Remove overlay (or mouse-sel-retain-highlight (delete-overlay mouse-drag-overlay)))))