comparison lisp/fringe.el @ 87702:7ebe288dfbd0

(fringe-mode-explicit): New variable. (set-fringe-mode): Don't alter default-frame-alist when just loading this file.
author Martin Rudalics <rudalics@gmx.at>
date Thu, 10 Jan 2008 18:44:27 +0000
parents 107ccd98fa12
children c70e45a7acfd 1e3a407766b9
comparison
equal deleted inserted replaced
87701:e4ad77d14806 87702:7ebe288dfbd0
91 91
92 ;; Control presence of fringes 92 ;; Control presence of fringes
93 93
94 (defvar fringe-mode) 94 (defvar fringe-mode)
95 95
96 (defvar fringe-mode-explicit nil
97 "Non-nil means `set-fringe-mode' should really do something.
98 This is nil while loading `fringe.el', and t afterward.")
99
96 (defun set-fringe-mode-1 (ignore value) 100 (defun set-fringe-mode-1 (ignore value)
97 "Call `set-fringe-mode' with VALUE. 101 "Call `set-fringe-mode' with VALUE.
98 See `fringe-mode' for valid values and their effect. 102 See `fringe-mode' for valid values and their effect.
99 This is usually invoked when setting `fringe-mode' via customize." 103 This is usually invoked when setting `fringe-mode' via customize."
100 (set-fringe-mode value)) 104 (set-fringe-mode value))
102 (defun set-fringe-mode (value) 106 (defun set-fringe-mode (value)
103 "Set `fringe-mode' to VALUE and put the new value into effect. 107 "Set `fringe-mode' to VALUE and put the new value into effect.
104 See `fringe-mode' for possible values and their effect." 108 See `fringe-mode' for possible values and their effect."
105 (setq fringe-mode value) 109 (setq fringe-mode value)
106 110
107 (modify-all-frames-parameters 111 (when fringe-mode-explicit
108 (list (cons 'left-fringe (if (consp fringe-mode) 112 (modify-all-frames-parameters
109 (car fringe-mode) 113 (list (cons 'left-fringe (if (consp fringe-mode)
110 fringe-mode)) 114 (car fringe-mode)
111 (cons 'right-fringe (if (consp fringe-mode) 115 fringe-mode))
112 (cdr fringe-mode) 116 (cons 'right-fringe (if (consp fringe-mode)
113 fringe-mode))))) 117 (cdr fringe-mode)
118 fringe-mode))))))
114 119
115 ;; For initialization of fringe-mode, take account of changes 120 ;; For initialization of fringe-mode, take account of changes
116 ;; made explicitly to default-frame-alist. 121 ;; made explicitly to default-frame-alist.
117 (defun fringe-mode-initialize (symbol value) 122 (defun fringe-mode-initialize (symbol value)
118 (let* ((left-pair (assq 'left-fringe default-frame-alist)) 123 (let* ((left-pair (assq 'left-fringe default-frame-alist))
156 (integer :tag "Right width"))) 161 (integer :tag "Right width")))
157 :group 'fringe 162 :group 'fringe
158 :require 'fringe 163 :require 'fringe
159 :initialize 'fringe-mode-initialize 164 :initialize 'fringe-mode-initialize
160 :set 'set-fringe-mode-1) 165 :set 'set-fringe-mode-1)
166
167 ;; We just set fringe-mode, but that was the default.
168 ;; If it is set again, that is for real.
169 (setq fringe-mode-explicit t)
161 170
162 (defun fringe-query-style (&optional all-frames) 171 (defun fringe-query-style (&optional all-frames)
163 "Query user for fringe style. 172 "Query user for fringe style.
164 Returns values suitable for left-fringe and right-fringe frame parameters. 173 Returns values suitable for left-fringe and right-fringe frame parameters.
165 If ALL-FRAMES, the negation of the fringe values in 174 If ALL-FRAMES, the negation of the fringe values in