X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/b03f96dc5a6651d1dc84b81b2a15cad6908b9809..3ecba0495e877769d3b29f67f0648af39352edb8:/lisp/scroll-bar.el diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el index 5fce4731c9..3f763fc59d 100644 --- a/lisp/scroll-bar.el +++ b/lisp/scroll-bar.el @@ -1,17 +1,17 @@ ;;; scroll-bar.el --- window system-independent scroll bar support ;; Copyright (C) 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003, -;; 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: hardware ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,9 +19,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -96,7 +94,7 @@ This is nil while loading `scroll-bar.el', and t afterward.") scroll-bar-mode))))) (defcustom scroll-bar-mode default-frame-scroll-bars - "*Specify whether to have vertical scroll bars, and on which side. + "Specify whether to have vertical scroll bars, and on which side. Possible values are nil (no scroll bars), `left' (scroll bars on left) and `right' (scroll bars on right). To set this variable in a Lisp program, use `set-scroll-bar-mode' @@ -119,15 +117,15 @@ Setting the variable with a customization buffer also takes effect." "Toggle display of vertical scroll bars on all frames. This command applies to all frames that exist and frames to be created in the future. -With a numeric argument, if the argument is negative, -turn off scroll bars; otherwise, turn on scroll bars." +With a numeric argument, if the argument is positive +turn on scroll bars; otherwise turn off scroll bars." (interactive "P") ;; Tweedle the variable according to the argument. - (set-scroll-bar-mode (if (if (null flag) + (set-scroll-bar-mode (if (if (null flag) (not scroll-bar-mode) (setq flag (prefix-numeric-value flag)) - (or (not (numberp flag)) (>= flag 0))) + (or (not (numberp flag)) (> flag 0))) (or previous-scroll-bar-mode default-frame-scroll-bars)))) @@ -158,7 +156,7 @@ Horizontal scroll bars aren't implemented yet." ;;;; Buffer navigation using the scroll bar. -;;; This was used for up-events on button 2, but no longer. +;; This was used for up-events on button 2, but no longer. (defun scroll-bar-set-window-start (event) "Set the window start according to where the scroll bar is dragged. EVENT should be a scroll bar click or drag event." @@ -166,8 +164,7 @@ EVENT should be a scroll bar click or drag event." (let* ((end-position (event-end event)) (window (nth 0 end-position)) (portion-whole (nth 2 end-position))) - (save-excursion - (set-buffer (window-buffer window)) + (with-current-buffer (window-buffer window) (save-excursion (goto-char (+ (point-min) (scroll-bar-scale portion-whole @@ -197,8 +194,7 @@ EVENT should be a scroll bar click or drag event." portion-start next-portion-start (current-start (window-start window))) - (save-excursion - (set-buffer (window-buffer window)) + (with-current-buffer (window-buffer window) (setq portion-start (scroll-bar-drag-position portion-whole)) (setq next-portion-start (max (scroll-bar-drag-position next-portion-whole) @@ -214,14 +210,14 @@ EVENT should be a scroll bar click or drag event." (let* ((start-position (event-start event)) (window (nth 0 start-position)) (portion-whole (nth 2 start-position))) - (save-excursion - (set-buffer (window-buffer window)) - ;; Calculate position relative to the accessible part of the buffer. - (goto-char (+ (point-min) - (scroll-bar-scale portion-whole - (- (point-max) (point-min))))) - (vertical-motion 0 window) - (set-window-start window (point))))) + (save-excursion + (with-current-buffer (window-buffer window) + ;; Calculate position relative to the accessible part of the buffer. + (goto-char (+ (point-min) + (scroll-bar-scale portion-whole + (- (point-max) (point-min))))) + (vertical-motion 0 window) + (set-window-start window (point)))))) (defun scroll-bar-drag (event) "Scroll the window by dragging the scroll bar slider. @@ -341,7 +337,7 @@ EVENT should be a scroll bar click." ;;;; Bindings. -;;; For now, we'll set things up to work like xterm. +;; For now, we'll set things up to work like xterm. (cond ((and (boundp 'x-toolkit-scroll-bars) x-toolkit-scroll-bars) (global-set-key [vertical-scroll-bar mouse-1] 'scroll-bar-toolkit-scroll)) @@ -360,5 +356,5 @@ EVENT should be a scroll bar click." (provide 'scroll-bar) -;;; arch-tag: 6f1d01d0-0b1e-4bf8-86db-d491e0f399f3 +;; arch-tag: 6f1d01d0-0b1e-4bf8-86db-d491e0f399f3 ;;; scroll-bar.el ends here