summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2004-10-17 06:49:55 +0000
committerRichard M. Stallman <rms@gnu.org>2004-10-17 06:49:55 +0000
commitefa0a47a838421348332d96af1e3ab26ef70051b (patch)
tree65fc5504b5ce0ed61cc32b35d99373f3dd39c014 /lisp
parentf9c237ead362c5ebfc4509c28f1184dc3dafa4da (diff)
downloademacs-efa0a47a838421348332d96af1e3ab26ef70051b.tar.gz
(fringe-mode-initialize): New function.
(fringe-mode): Use fringe-mode-initialize as :initialize.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/fringe.el20
1 files changed, 20 insertions, 0 deletions
diff --git a/lisp/fringe.el b/lisp/fringe.el
index 076ab1c176f..f9ddd87931f 100644
--- a/lisp/fringe.el
+++ b/lisp/fringe.el
@@ -113,6 +113,25 @@ See `fringe-mode' for possible values and their effect."
fringe-mode))))
(setq frames (cdr frames)))))
+;; For initialization of fringe-mode, take account of changes
+;; made explicitly to default-frame-alist.
+(defun fringe-mode-initialize (symbol value)
+ (let* ((left-pair (assq 'left-fringe default-frame-alist))
+ (right-pair (assq 'right-fringe default-frame-alist))
+ (left (cdr left-pair))
+ (right (cdr right-pair)))
+ (if (or left-pair right-pair)
+ ;; If there's something in default-frame-alist for fringes,
+ ;; don't change it, but reflect that into the value of fringe-mode.
+ (progn
+ (setq fringe-mode (cons left right))
+ (if (equal fringe-mode '(nil . nil))
+ (setq fringe-mode nil))
+ (if (equal fringe-mode '(0 . 0))
+ (setq fringe-mode 0)))
+ ;; Otherwise impose the user-specified value of fringe-mode.
+ (custom-initialize-reset symbol value))))
+
;;;###autoload
(defcustom fringe-mode nil
"*Specify appearance of fringes on all frames.
@@ -139,6 +158,7 @@ you can use the interactive function `toggle-fringe'"
(integer :tag "Right width")))
:group 'frames
:require 'fringe
+ :initialize 'fringe-mode-initialize
:set 'set-fringe-mode-1)
(defun fringe-query-style (&optional all-frames)