[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: list-faces-display imposes its own background, doesn't respect speci
From: |
Drew Adams |
Subject: |
RE: list-faces-display imposes its own background, doesn't respect special-display-frame-alist |
Date: |
Thu, 22 Nov 2007 08:37:53 -0800 |
Resending, consolidating the three separate mails, in case this got lost.
> From: Drew Adams Sent: Tuesday, October 23, 2007 3:33 PM
>
> 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?)
>
> I should add that list-colors-display does not have this problem.
> list-faces-display should act the same way.
>
> Also, in case it helps, the background is not imposed as white.
> It appears that the default frame background is what is imposed
> for the *Faces* buffer.
>
>
> 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
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RE: list-faces-display imposes its own background, doesn't respect special-display-frame-alist,
Drew Adams <=