Mercurial > emacs
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 |