summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Rudalics <rudalics@gmx.at>2014-09-03 17:10:29 +0200
committerMartin Rudalics <rudalics@gmx.at>2014-09-03 17:10:29 +0200
commit568df136f13451a098d166918b9602cf8dedf976 (patch)
treed9870a3b614c9f10d2f626e7481c796b750f171b
parent62fca47221fc9d248511cd94fbcb41ddb46763e6 (diff)
Clean up initialization and customization of horizontal scroll bars.
* frame.el (frame-initialize): Remove horizontal-scroll-bars from frame-initial-frame-alist. * scroll-bar.el (previous-horizontal-scroll-bar-mode) (horizontal-scroll-bar-mode-explicit) (set-horizontal-scroll-bar-mode, get-horizontal-scroll-bar-mode) (toggle-horizontal-scroll-bar): Remove. (horizontal-scroll-bar-mode): Remove defcustom. (horizontal-scroll-bar-mode): Fix doc-string. (scroll-bar-toolkit-scroll) (scroll-bar-toolkit-horizontal-scroll): Add doc-strings stubs. * buffer.c (scroll-bar-height): Fix typo in doc-string. * frame.c (Vdefault_frame_horizontal_scroll_bars): Remove variable. * nsfns.m (Fx_create_frame): * w32fns.c (Fx_create_frame): * xfns.c (Fx_create_frame): Default horizontal scroll bars to nil.
-rw-r--r--etc/NEWS11
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/frame.el4
-rw-r--r--lisp/scroll-bar.el68
-rw-r--r--src/ChangeLog10
-rw-r--r--src/buffer.c2
-rw-r--r--src/frame.c10
-rw-r--r--src/nsfns.m2
-rw-r--r--src/w32fns.c2
-rw-r--r--src/xfns.c8
10 files changed, 51 insertions, 79 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 1d9f8ca850..776519fa5c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -232,6 +232,17 @@ optional repeat-count argument.
as the first or last argument of subsequent forms.
+* Changes in Frames and Windows Code in Emacs 24.5
+
+** Emacs can now draw horizontal scroll bars on some platforms that
+provide toolkit scroll bars, namely Gtk, Lucid, Motif and Windows.
+Horizontal scroll bars are turned off by default. Use the command
+`horizontal-scroll-bar-mode' to toggle them on all frames; the frame
+parameter `horizontal-scroll-bars' to turn them on/off on individual
+frames; the function `set-window-scroll-bars' to turn them on/off on
+individual windows.
+
+
* Changes in Emacs 24.5 on Non-Free Operating Systems
---
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 29fec987a2..d4bb37d32c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,16 @@
+2014-09-03 Martin Rudalics <rudalics@gmx.at>
+
+ * frame.el (frame-initialize): Remove horizontal-scroll-bars
+ from frame-initial-frame-alist.
+ * scroll-bar.el (previous-horizontal-scroll-bar-mode)
+ (horizontal-scroll-bar-mode-explicit)
+ (set-horizontal-scroll-bar-mode, get-horizontal-scroll-bar-mode)
+ (toggle-horizontal-scroll-bar): Remove.
+ (horizontal-scroll-bar-mode): Remove defcustom.
+ (horizontal-scroll-bar-mode): Fix doc-string.
+ (scroll-bar-toolkit-scroll)
+ (scroll-bar-toolkit-horizontal-scroll): Add doc-strings stubs.
+
2014-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/package.el (package-generate-description-file):
diff --git a/lisp/frame.el b/lisp/frame.el
index d528eef673..f144cf2340 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -174,10 +174,6 @@ This function runs the hook `focus-out-hook'."
(progn
(setq frame-initial-frame-alist
(append initial-frame-alist default-frame-alist nil))
- (or (assq 'horizontal-scroll-bars frame-initial-frame-alist)
- (setq frame-initial-frame-alist
- (cons '(horizontal-scroll-bars . t)
- frame-initial-frame-alist)))
(setq frame-initial-frame-alist
(cons (cons 'window-system initial-window-system)
frame-initial-frame-alist))
diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el
index 2dd394fa2a..588ac3b0f8 100644
--- a/lisp/scroll-bar.el
+++ b/lisp/scroll-bar.el
@@ -90,16 +90,11 @@ SIDE must be the symbol `left' or `right'."
(defvar scroll-bar-mode)
(defvar horizontal-scroll-bar-mode)
(defvar previous-scroll-bar-mode nil)
-(defvar previous-horizontal-scroll-bar-mode nil)
(defvar scroll-bar-mode-explicit nil
"Non-nil means `set-scroll-bar-mode' should really do something.
This is nil while loading `scroll-bar.el', and t afterward.")
-(defvar horizontal-scroll-bar-mode-explicit nil
- "Non-nil means `set-horizontal-scroll-bar-mode' should really do something.
-This is nil while loading `scroll-bar.el', and t afterward.")
-
(defun set-scroll-bar-mode (value)
"Set the scroll bar mode to VALUE and put the new value into effect.
See the `scroll-bar-mode' variable for possible values to use."
@@ -112,18 +107,6 @@ See the `scroll-bar-mode' variable for possible values to use."
(modify-all-frames-parameters (list (cons 'vertical-scroll-bars
scroll-bar-mode)))))
-(defun set-horizontal-scroll-bar-mode (value)
- "Set the horizontal scroll bar mode to VALUE and put the new value into effect.
-See the `horizontal-scroll-bar-mode' variable for possible values to use."
- (if horizontal-scroll-bar-mode
- (setq previous-horizontal-scroll-bar-mode horizontal-scroll-bar-mode))
-
- (setq horizontal-scroll-bar-mode value)
-
- (when horizontal-scroll-bar-mode-explicit
- (modify-all-frames-parameters (list (cons 'horizontal-scroll-bars
- horizontal-scroll-bar-mode)))))
-
(defcustom scroll-bar-mode default-frame-scroll-bars
"Specify whether to have vertical scroll bars, and on which side.
Possible values are nil (no scroll bars), `left' (scroll bars on left)
@@ -140,32 +123,14 @@ Setting the variable with a customization buffer also takes effect."
:initialize 'custom-initialize-default
:set (lambda (_sym val) (set-scroll-bar-mode val)))
-(defcustom horizontal-scroll-bar-mode default-frame-horizontal-scroll-bars
- "Specify whether to have horizontal scroll bars, and on which side.
-To set this variable in a Lisp program, use `set-horizontal-scroll-bar-mode'
-to make it take real effect.
-Setting the variable with a customization buffer also takes effect."
- :type '(choice (const :tag "none (nil)" nil)
- (const t))
- :group 'frames
- ;; The default value for :initialize would try to use :set
- ;; when processing the file in cus-dep.el.
- :initialize 'custom-initialize-default
- :set (lambda (_sym val) (set-horizontal-scroll-bar-mode val)))
-
;; We just set scroll-bar-mode, but that was the default.
;; If it is set again, that is for real.
(setq scroll-bar-mode-explicit t)
-(setq horizontal-scroll-bar-mode-explicit t)
(defun get-scroll-bar-mode ()
(declare (gv-setter set-scroll-bar-mode))
scroll-bar-mode)
-(defun get-horizontal-scroll-bar-mode ()
- (declare (gv-setter set-horizontal-scroll-bar-mode))
- horizontal-scroll-bar-mode)
-
(define-minor-mode scroll-bar-mode
"Toggle vertical scroll bars on all frames (Scroll Bar mode).
With a prefix argument ARG, enable Scroll Bar mode if ARG is
@@ -187,10 +152,17 @@ enable the mode if ARG is omitted or nil.
This command applies to all frames that exist and frames to be
created in the future."
- :variable ((get-horizontal-scroll-bar-mode)
- . (lambda (v) (set-horizontal-scroll-bar-mode
- (if v (or previous-scroll-bar-mode
- default-frame-horizontal-scroll-bars))))))
+ :init-value nil
+ :global t
+ :group 'frames
+ (dolist (frame (frame-list))
+ (set-frame-parameter
+ frame 'horizontal-scroll-bars horizontal-scroll-bar-mode))
+ ;; Handle `default-frame-alist' entry.
+ (setq default-frame-alist
+ (cons (cons 'horizontal-scroll-bars horizontal-scroll-bar-mode)
+ (assq-delete-all 'horizontal-scroll-bars
+ default-frame-alist))))
(defun toggle-scroll-bar (arg)
"Toggle whether or not the selected frame has vertical scroll bars.
@@ -209,22 +181,6 @@ when they are turned on; if it is nil, they go on the left."
(list (cons 'vertical-scroll-bars
(if (> arg 0)
(or scroll-bar-mode default-frame-scroll-bars))))))
-
-(defun toggle-horizontal-scroll-bar (arg)
- "Toggle whether or not the selected frame has horizontal scroll bars.
-With arg, turn horizontal scroll bars on if and only if arg is positive."
- (interactive "P")
- (if (null arg)
- (setq arg
- (if (cdr (assq 'horizontal-scroll-bars
- (frame-parameters (selected-frame))))
- -1 1))
- (setq arg (prefix-numeric-value arg)))
- (modify-frame-parameters
- (selected-frame)
- (list (cons 'horizontal-scroll-bars
- (if (> arg 0)
- (or horizontal-scroll-bar-mode default-frame-horizontal-scroll-bars))))))
;;;; Buffer navigation using the scroll bar.
@@ -412,6 +368,7 @@ EVENT should be a scroll bar click."
;;; Tookit scroll bars.
(defun scroll-bar-toolkit-scroll (event)
+ "Handle event EVENT on vertical scroll bar."
(interactive "e")
(let* ((end-position (event-end event))
(window (nth 0 end-position))
@@ -453,6 +410,7 @@ EVENT should be a scroll bar click."
(setq point-before-scroll before-scroll))))))
(defun scroll-bar-toolkit-horizontal-scroll (event)
+ "Handle event EVENT on horizontal scroll bar."
(interactive "e")
(let* ((end-position (event-end event))
(window (nth 0 end-position))
diff --git a/src/ChangeLog b/src/ChangeLog
index cfafd9d8fa..4f189e5be3 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,13 @@
+2014-09-03 Martin Rudalics <rudalics@gmx.at>
+
+ * buffer.c (scroll-bar-height): Fix typo in doc-string.
+ * frame.c (Vdefault_frame_horizontal_scroll_bars): Remove
+ variable.
+ * nsfns.m (Fx_create_frame):
+ * w32fns.c (Fx_create_frame):
+ * xfns.c (Fx_create_frame): Default horizontal scroll bars to
+ nil.
+
2014-09-03 Eli Zaretskii <eliz@gnu.org>
* dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in
diff --git a/src/buffer.c b/src/buffer.c
index 62431cb8fe..45e614fb44 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5919,7 +5919,7 @@ A value of nil means to use the scroll bar width from the window's frame. */);
DEFVAR_PER_BUFFER ("scroll-bar-height", &BVAR (current_buffer, scroll_bar_height),
Qintegerp,
doc: /* Height of this buffer's scroll bars in pixels.
-A value of nil means to use the scroll bar heiht from the window's frame. */);
+A value of nil means to use the scroll bar height from the window's frame. */);
DEFVAR_PER_BUFFER ("vertical-scroll-bar", &BVAR (current_buffer, vertical_scroll_bar_type),
Qvertical_scroll_bar,
diff --git a/src/frame.c b/src/frame.c
index 501f01a312..96617976ec 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -4872,16 +4872,6 @@ Setting this variable does not affect existing frames, only new ones. */);
Vdefault_frame_scroll_bars = Qnil;
#endif
- DEFVAR_LISP ("default-frame-horizontal-scroll-bars", Vdefault_frame_horizontal_scroll_bars,
- doc: /* Default value for horizontal scroll bars on this window-system. */);
-#if (defined (HAVE_WINDOW_SYSTEM) \
- && ((defined (USE_TOOLKIT_SCROLL_BARS) && !defined (HAVE_NS)) \
- || defined (HAVE_NTGUI)))
- Vdefault_frame_horizontal_scroll_bars = Qt;
-#else
- Vdefault_frame_horizontal_scroll_bars = Qnil;
-#endif
-
DEFVAR_BOOL ("scroll-bar-adjust-thumb-portion",
scroll_bar_adjust_thumb_portion_p,
doc: /* Adjust thumb for overscrolling for Gtk+ and MOTIF.
diff --git a/src/nsfns.m b/src/nsfns.m
index ca8f4922cc..052c428fae 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -1244,7 +1244,7 @@ This function is an internal primitive--use `make-frame' instead. */)
"verticalScrollBars", "VerticalScrollBars",
RES_TYPE_SYMBOL);
}
- x_default_parameter (f, parms, Qhorizontal_scroll_bars, Qt,
+ x_default_parameter (f, parms, Qhorizontal_scroll_bars, Qnil,
"horizontalScrollBars", "HorizontalScrollBars",
RES_TYPE_SYMBOL);
x_default_parameter (f, parms, Qforeground_color, build_string ("Black"),
diff --git a/src/w32fns.c b/src/w32fns.c
index ac0e693e1c..fee80d2469 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -4569,7 +4569,7 @@ This function is an internal primitive--use `make-frame' instead. */)
NULL, NULL, RES_TYPE_NUMBER);
x_default_parameter (f, parameters, Qvertical_scroll_bars, Qright,
"verticalScrollBars", "ScrollBars", RES_TYPE_SYMBOL);
- x_default_parameter (f, parameters, Qhorizontal_scroll_bars, Qbottom,
+ x_default_parameter (f, parameters, Qhorizontal_scroll_bars, Qnil,
"horizontalScrollBars", "ScrollBars", RES_TYPE_SYMBOL);
/* Also do the stuff which must be set before the window exists. */
diff --git a/src/xfns.c b/src/xfns.c
index 0c07d6cb03..ec915a69f8 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3112,15 +3112,9 @@ This function is an internal primitive--use `make-frame' instead. */)
#endif
"verticalScrollBars", "ScrollBars",
RES_TYPE_SYMBOL);
- x_default_parameter (f, parms, Qhorizontal_scroll_bars,
-#if defined (USE_GTK) && defined (USE_TOOLKIT_SCROLL_BARS)
- Qt,
-#else
- Qnil,
-#endif
+ x_default_parameter (f, parms, Qhorizontal_scroll_bars, Qnil,
"horizontalScrollBars", "ScrollBars",
RES_TYPE_SYMBOL);
-
/* Also do the stuff which must be set before the window exists. */
x_default_parameter (f, parms, Qforeground_color, build_string ("black"),
"foreground", "Foreground", RES_TYPE_STRING);