From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Stefan Monnier" Newsgroups: gmane.emacs.devel Subject: Re: `scroll-all-mode' hard to customize Date: Fri, 09 Aug 2002 04:02:24 -0400 Sender: emacs-devel-admin@gnu.org Message-ID: <200208090802.g7982OP12334@rum.cs.yale.edu> References: NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1028880142 21499 127.0.0.1 (9 Aug 2002 08:02:22 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 9 Aug 2002 08:02:22 +0000 (UTC) Cc: emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 17d4iy-0005ae-00 for ; Fri, 09 Aug 2002 10:02:20 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17d55S-0007F7-00 for ; Fri, 09 Aug 2002 10:25:34 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17d4ji-0001Km-00; Fri, 09 Aug 2002 04:03:06 -0400 Original-Received: from rum.cs.yale.edu ([128.36.229.169]) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17d4j5-0001Hv-00 for ; Fri, 09 Aug 2002 04:02:27 -0400 Original-Received: (from monnier@localhost) by rum.cs.yale.edu (8.11.6/8.11.6) id g7982OP12334; Fri, 9 Aug 2002 04:02:24 -0400 X-Mailer: exmh version 2.4 06/23/2000 with nmh-1.0.4 Original-To: John Paul Wallington Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:6394 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:6394 > --- 125,136 ---- > (defun scroll-all-mode (arg) > "Toggle Scroll-All minor mode." > (interactive "P") > ! (setq scroll-all-mode > ! (if (null arg) (not scroll-all-mode) > ! (> (prefix-numeric-value arg) 0))) > ! (if scroll-all-mode > ! (add-hook 'post-command-hook 'scroll-all-check-to-scroll) > ! (remove-hook 'post-command-hook 'scroll-all-check-to-scroll))) > > (provide 'scroll-all) Better yet, use define-minor-mode. Stefan --- scroll-all.el.~1.10.~ Fri Apr 26 14:03:51 2002 +++ scroll-all.el Fri Aug 9 00:03:15 2002 @@ -39,26 +39,6 @@ ;;; Code: -(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)) - -;;;###autoload -(defcustom scroll-all-mode nil - "Control/track scroll locking. - -Setting this variable directly does not take effect; -use either \\[customize] or the function `scroll-all-mode'." - :set (lambda (symbol value) (scroll-all-mode (if value 1 0))) - :initialize 'custom-initialize-default - :require 'scroll-all - :type 'boolean - :group 'windows) - -(if running-xemacs - (add-minor-mode 'scroll-all-mode " *SL*") - (or (assq 'scroll-all-mode minor-mode-alist) - (setq minor-mode-alist - (cons '(scroll-all-mode " *SL*") minor-mode-alist)))) - (defun scroll-all-function-all (func arg) "Apply function FUNC with argument ARG to all visible windows." (let ((num-windows (count-windows)) @@ -122,15 +102,12 @@ ;;;###autoload -(defun scroll-all-mode (arg) +(define-minor-mode scroll-all-mode " *SL*" "Toggle Scroll-All minor mode." - (interactive "P") - (setq scroll-all-mode (not scroll-all-mode)) - (cond - ((eq scroll-all-mode 't) - (add-hook 'post-command-hook 'scroll-all-check-to-scroll)) - ((eq scroll-all-mode 'nil) - (remove-hook 'post-command-hook 'scroll-all-check-to-scroll)))) + :global t + (if scroll-all-mode + (add-hook 'post-command-hook 'scroll-all-check-to-scroll) + (remove-hook 'post-command-hook 'scroll-all-check-to-scroll))) (provide 'scroll-all)