[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: set-scroll-bar-mode



From: NISHIMURA Daisuke <nishi@xxxxxxxxxxxxxxxxxxxxx> さん曰く
Subject: Re: set-scroll-bar-mode
Message-ID: <20010508195820T.nishi@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 08 May 2001 19:58:20 +0900

nishi> >> 同じ feature を provide するのなら、インターフェイスを
nishi> >> 合わせてくれないか
nishi> himi> はい。ご指摘はごもっともです。
nishi> 
nishi> でも、合わせて変えてしまうと、逆に過去との互換性の面で
nishi> 問題になるかもしれないですね。まあ、 Emacs 20 も過去を
nishi> 捨てたのだからいいのかな?

そういう気も少しだけしたのですが、昨日、Meadow の CVS を変えてし
まいました。次の Meadow release 時には変更されています。

nishi> himi> ## 誰か適当にsynch.してくれると嬉しいんですが...。^^;;;
nishi> 
nishi> 今回の件についてはやってみてお送りしてもいいですが。

もうしわけないです。昨日 Meadow-develop ML には『パッチ作ったよ』
と書いたのですが、こちらに書くのをすっかり忘れていました。以下の
パッチをあてましたので、お試し下さい。

なお、mw32scroll.el は loadup されているので、patch をあて
byte-compile をしたあと、dump(NT|95).bat を実行して dump しなお
す必要があります。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxx)

--- mw32scroll.el.orig	Tue May 08 16:24:39 2001
+++ mw32scroll.el	Tue May 08 16:24:39 2001
@@ -249,39 +249,10 @@
   (interactive "P")
   (if flag (setq flag (prefix-numeric-value flag)))
 
-  ;; Obtain the current setting by looking at default-frame-alist.
-  (let ((scroll-bar
-	 (let ((assq (assq 'vertical-scroll-bars default-frame-alist)))
-	   (if assq (cdr assq) t))))
-
-    ;; Tweedle it according to the argument.
-    (setq scroll-bar (if (null flag) 
-			 (if (not scroll-bar)
-			     scroll-bar-mode)
-		       (if (>= flag 0)
-			   scroll-bar-mode
-			 nil)))
-
-    ;; Apply it to default-frame-alist.
-    (mapcar
-     (function
-      (lambda (param-name)
-	(let ((parameter (assq param-name default-frame-alist)))
-	  (if (consp parameter)
-	      (setcdr parameter scroll-bar)
-	    (setq default-frame-alist
-		  (cons (cons param-name scroll-bar)
-			default-frame-alist))))))
-     '(vertical-scroll-bars horizontal-scroll-bars))
-
-    ;; Apply it to existing frames.
-    (let ((frames (frame-list)))
-      (while frames
-	(modify-frame-parameters
-	 (car frames)
-	 (list (cons 'vertical-scroll-bars scroll-bar)
-	       (cons 'horizontal-scroll-bars scroll-bar)))
-	(setq frames (cdr frames))))))
+  ;; Tweedle the variable according to the argument.
+  (set-scroll-bar-mode (if (null flag) (not scroll-bar-mode)
+			 (and (or (not (numberp flag)) (>= flag 0))
+			      (if (eq system-type 'windows-nt) 'right 'left)))))
 
 (defun toggle-scroll-bar (arg)
   "Toggle whether or not the selected frame has vertical scroll bars.
@@ -299,7 +270,10 @@
 				       (if (> arg 0)
 					   (or scroll-bar-mode 'left))))))
 
-(defun set-scroll-bar-mode (ignore value)
+(defun set-scroll-bar-mode-1 (ignore value)
+  (set-scroll-bar-mode value))
+
+(defun set-scroll-bar-mode (value)
   "Set `scroll-bar-mode' to VALUE and put the new value into effect."
   (setq scroll-bar-mode value)
 
@@ -331,7 +305,7 @@
 		 (const left)
 		 (const right))
   :group 'frames
-  :set 'set-scroll-bar-mode)
+  :set 'set-scroll-bar-mode-1)
 
 (global-set-key [vertical-scroll-bar mouse-1] 'w32-handle-scroll-bar-event)
 (global-set-key [mouse-wheel1] 'w32-handle-mouse-wheel-event)