[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
list-faces-display imposes its own background, doesn't respect special-d
From: |
Drew Adams |
Subject: |
list-faces-display imposes its own background, doesn't respect special-display-frame-alist |
Date: |
Tue, 23 Oct 2007 12:53:15 -0700 |
emacs -Q
Evaluate these sexps:
(setq special-display-regexps '("[ ]?[*][^*]+[*]"))
(setq special-display-frame-alist
'((foreground-color . "Black")
(background-color . "LightSteelBlue")))
(setq pop-up-frames t)
(defun special-display-popup-frame (buffer &optional args)
"Display BUFFER in its own frame, reusing an existing window if any.
Return the window chosen. Window is not selected within its frame.
If a new frame is needed, then `make-frame' is called to create it,
with BUFFER as the current buffer.
If ARGS is an alist, use it as a list of frame parameter specs.
If ARGS is a list whose car is a symbol, use (car ARGS) as a function
to do the work. Pass it BUFFER as first arg, and (cdr ARGS) as the
rest of its args."
(if (and args (symbolp (car args)))
(let* ((window (apply (car args) buffer (cdr args)))
(frame (window-frame window)))
(when (fboundp 'fit-frame) (fit-frame (window-frame window)))
(raise-frame frame)
window) ; Return the window.
(let ((window (get-buffer-window buffer 0)))
(or
;; If we have a window already, make it visible.
(when window
(let ((frame (window-frame window)))
(make-frame-visible frame)
(raise-frame frame)
(when (fboundp 'fit-frame) (fit-frame frame))
window)) ; Return the window.
;; Reuse the current window if the user requested it.
(when (cdr (assq 'same-window args))
(condition-case nil
(progn (switch-to-buffer buffer) (selected-window))
(error nil)))
;; Stay on the same frame if requested.
(when (or (cdr (assq 'same-frame args)) (cdr (assq 'same-window
args)))
(let* ((pop-up-frames nil) (pop-up-windows t)
special-display-regexps special-display-buffer-names
(window (display-buffer buffer)))
;; Only do it if this is a new window:
;; (set-window-dedicated-p window t)
window)) ; Return the window.
;; If no window yet, make one in a new frame.
(let ((frame (with-current-buffer buffer
(make-frame (append args
special-display-frame-alist)))))
(when (and (fboundp 'fit-frame)
(not (memq 'fit-frame after-make-frame-functions)))
(with-current-buffer buffer (fit-frame frame)))
(set-window-buffer (frame-selected-window frame) buffer)
(set-window-dedicated-p (frame-selected-window frame) t)
(frame-selected-window frame)))))) ; Return the window.
Try C-h f setq - no problem. The frame background is LightSteelBlue.
Try M-x list-faces-display. The frame background, or at least the
background of buffer *Faces*, is white. The frame background appears
to be LightSteelBlue, which is correct, but that only shows in the
fringe and the minibuffer. (So, for a frame without minibuffer and
fringe, no LightSteelBlue background is seen.
`list-faces-display' should not impose a special background for its
window/buffer. (And how does it do that, anyway?)
In GNU Emacs 22.1.1 (i386-mingw-nt5.1.2600)
of 2007-06-02 on RELEASE
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --cflags -Ic:/gnuwin32/include'
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: ENU
locale-coding-system: cp1252
default-enable-multibyte-characters: t
Major mode: Emacs-Lisp
Minor modes in effect:
encoded-kbd-mode: t
tooltip-mode: t
tool-bar-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
auto-compression-mode: t
line-number-mode: t
Recent input:
<help-echo> C-x C-f o o o . e l <return> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> M-x l o a d - f <return> <return> C-h f
<return> <switch-frame> C-x k <return> M-x l i s d
t - <backspace> <backspace> <backspace> t - f a c e
<return> <switch-frame> C-x k C-g <help-echo> <help-echo>
<switch-frame> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <menu-bar> <help-menu>
<report-emacs-bug>
Recent messages:
("C:\\Emacs-22.1\\bin\\emacs.exe" "-Q" "--debug-init" "C:\\drews-lisp-20")
Loading encoded-kb...done
For information about the GNU Project and its goals, type C-h C-p.
Loading dired...
Loading regexp-opt...done
Loading dired...done
Loading c:/drews-lisp-20/ooo.el (source)...done
Loading help-fns...done
Quit
Loading emacsbug...done
- list-faces-display imposes its own background, doesn't respect special-display-frame-alist,
Drew Adams <=