Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!usc!venera.isi.edu!raveling From: raveling@venera.isi.edu (Paul Raveling) Newsgroups: gnu.emacs Subject: Input remapping, Part 8 of 8: default_mouse.el Message-ID: <8725@venera.isi.edu> Date: 22 Jun 89 20:21:19 GMT Reply-To: raveling@venera.isi.edu (Paul Raveling) Distribution: gnu Organization: USC-Information Sciences Institute Lines: 170 HP/ISI input remapping files: Part 8 of 8 These are differences between lisp/x-mouse.el and lisp/term/default_mouse.el in GNU emacs version 18.54. Changes are different a different set of functions for the mouse buttons, motivated to some extent by the change in "standard" X11 mouse button bindings for cut/paste functions. Adding the recenter function on a right-button-click was an unrelated change that's proved outrageously convenient. Another convenience feature is availability of both destructive and non-destructive region extraction. ------------------------------ Cut Here -------------------------------- 0a1,6 > > ;; term/default_mouse:el: > > ;; This is a variant of x-mouse.el customized by Paul Raveling, > ;; USC-ISI, for different mouse button functionality. > 264,270c270 < (define-key mouse-map x-button-c-s-left 'x-buffer-menu) < (define-key mouse-map x-button-c-s-middle 'x-help) < (define-key mouse-map x-button-c-s-right 'x-mouse-keep-one-window) < (define-key mouse-map x-button-s-middle 'x-cut-text) < (define-key mouse-map x-button-s-right 'x-paste-text) < (define-key mouse-map x-button-c-middle 'x-cut-and-wipe-text) < (define-key mouse-map x-button-c-right 'x-mouse-select-and-split) --- > ;; Deleted from original version: 272,279c272,397 < (if (= window-system-version 10) < (progn < (define-key mouse-map x-button-right 'x-mouse-select) < (define-key mouse-map x-button-left 'x-mouse-set-mark) < (define-key mouse-map x-button-middle 'x-mouse-set-point)) < (define-key mouse-map x-button-right 'x-cut-text) < (define-key mouse-map x-button-left 'x-mouse-set-point) < (define-key mouse-map x-button-middle 'x-paste-text)) --- > ;;(define-key mouse-map x-button-c-s-left 'x-buffer-menu) > ;;(define-key mouse-map x-button-c-s-middle 'x-help) > ;;(define-key mouse-map x-button-c-s-right 'x-mouse-keep-one-window) > ;;(define-key mouse-map x-button-s-middle 'x-cut-text) > ;;(define-key mouse-map x-button-s-right 'x-paste-text) > ;;(define-key mouse-map x-button-c-middle 'x-cut-and-wipe-text) > ;;(define-key mouse-map x-button-c-right 'x-mouse-select-and-split) > > ;;(if (= window-system-version 10) > ;; (progn > ;; (define-key mouse-map x-button-right 'x-mouse-select) > ;; (define-key mouse-map x-button-left 'x-mouse-set-mark) > ;; (define-key mouse-map x-button-middle 'x-mouse-set-point)) > ;; (define-key mouse-map x-button-right 'x-cut-text) > ;; (define-key mouse-map x-button-left 'x-mouse-set-point) > ;; (define-key mouse-map x-button-middle 'x-paste-text)) > > > ;; Added to replace deleted bindings: > > > (defvar x-mouse-last-pos (list -1 -1) "position of the last mouse down event") > (defvar x-mouse-last-dot 0 "Value of dot BEFORE the last mouse down event") > > > (defun x-mouse-mark (arg) > (setq x-mouse-last-dot (dot)) > (if (x-mouse-set-point arg) > (progn > (setq x-mouse-last-pos arg)))) > > (defun x-mouse-markcenter (arg) > (setq x-mouse-last-dot (dot)) > (if (x-mouse-set-point arg) > (progn > (setq x-mouse-last-pos arg))) > (recenter arg)) > > > (defun x-mouse-copy (arg) > (if (equal x-mouse-last-pos arg) > (set-mark x-mouse-last-dot) > (let ((odot (dot))) > (if (x-mouse-set-point arg) > (copy-region-as-kill odot (dot)))))) > > (defun x-mouse-delete (arg) > (if (equal x-mouse-last-pos arg) > (progn (set-mark x-mouse-last-dot) (recenter arg)) > (let ((odot (dot))) > (if (x-mouse-set-point arg) > (kill-region odot (dot)))))) > > (defun x-mouse-delete-insert (arg) > (if (equal x-mouse-last-pos arg) > (yank) > (let ((odot (dot))) > (if (x-mouse-set-point arg) > (kill-region odot (dot)))))) > > (defun x-mouse-insert (arg) > (if (x-mouse-set-point arg) > (yank))) > > > > (defun x-mouse-cut (arg) > (let ((odot (dot))) > (if (x-mouse-set-point arg) > (x-store-cut-buffer (buffer-substring odot (dot)))))) > > (defun x-mouse-delcut (arg) > (if (equal x-mouse-last-pos arg) > (progn (set-mark x-mouse-last-dot) (recenter arg)) > (let ((odot (dot))) > (if (x-mouse-set-point arg) > (progn > (x-store-cut-buffer (buffer-substring odot (dot))) > (delete-region odot (dot))))))) > > (defun x-mouse-insert-cut (arg) > (if (x-mouse-set-point arg) > (insert (x-get-cut-buffer)))) > > (defun mouse () > "Describe default mouse button functions" > (interactive) > (view-file "/usr/local/gemacs-18.54/etc/HP_mouse.text")) > > > ;; Mouse Key Functions > > ;; All mouse keys move the gemacs character cursor > ;; to the character marked by the X11 cursor when > ;; the mouse key is released. > > ;; Button Function > ;; ------ -------- > > ;; Left > ;; Click: Mark X11 cursor location, > ;; Drag: Mark region, copy to cut buffer > ;; Middle Insert from cut buffer @ X11 cursor > ;; Right > ;; Click: Mark X11 cursor location & center it > ;; Drag: Delete region, save in cut buffer > > > ;; Unshifted mouse keys operate on the editor's private cut buffer; > ;; Shifted mouse keys operate on X11's (public) cut buffer > > > > (define-key mouse-map x-button-left 'x-mouse-mark) > (define-key mouse-map x-button-left-up 'x-mouse-copy) > (define-key mouse-map x-button-middle 'null) > (define-key mouse-map x-button-middle-up 'x-mouse-insert) > (define-key mouse-map x-button-right 'x-mouse-mark) > (define-key mouse-map x-button-right-up 'x-mouse-delete) > > (define-key mouse-map x-button-s-left 'x-mouse-mark) > (define-key mouse-map x-button-s-left-up 'x-mouse-cut) > (define-key mouse-map x-button-s-middle 'null) > (define-key mouse-map x-button-s-middle-up 'x-mouse-insert-cut) > (define-key mouse-map x-button-s-right 'x-mouse-mark) > (define-key mouse-map x-button-s-right-up 'x-mouse-delcut)