]> git.eshelyaron.com Git - emacs.git/commitdiff
(mouse-sel-version): Don't base version number on
authorRichard M. Stallman <rms@gnu.org>
Wed, 2 Feb 1994 23:19:11 +0000 (23:19 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 2 Feb 1994 23:19:11 +0000 (23:19 +0000)
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.

lisp/mouse-sel.el

index d4467a0e997c28557ee05522026da5a9f7e0d78c..96a8e5b617f33d4250f451a247d6181c1ea4ae88 100644 (file)
@@ -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
 ;;
 ;;   * 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.
 ;;
 ;;   nesting level.  This also means the selection cannot be extended out
 ;;   of the enclosing nesting level.  This is INTENTIONAL.
 
-;;; Code:
+;;; Code: =================================================================
 
 (provide 'mouse-sel)
 
 
 ;;=== 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 @@ Ie. 4 clicks = 1 click, 5 clicks = 2 clicks, etc.")
 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 @@ This should be bound to a down-mouse event."
                 (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 @@ This should be bound to a down-mouse event."
             ((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)))))