* list-faces-display imposes its own background, doesn't respect special-display-frame-alist
@ 2007-10-23 19:53 Drew Adams
2007-10-23 19:54 ` Drew Adams
0 siblings, 1 reply; 4+ messages in thread
From: Drew Adams @ 2007-10-23 19:53 UTC (permalink / raw)
To: Bug-Gnu-Emacs
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: list-faces-display imposes its own background, doesn't respect special-display-frame-alist
2007-10-23 19:53 list-faces-display imposes its own background, doesn't respect special-display-frame-alist Drew Adams
@ 2007-10-23 19:54 ` Drew Adams
2007-10-23 22:33 ` Drew Adams
0 siblings, 1 reply; 4+ messages in thread
From: Drew Adams @ 2007-10-23 19:54 UTC (permalink / raw)
To: Bug-Gnu-Emacs
I should add that list-colors-display does not have this problem.
list-faces-display should act the same way.
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: list-faces-display imposes its own background, doesn't respect special-display-frame-alist
2007-10-23 19:54 ` Drew Adams
@ 2007-10-23 22:33 ` Drew Adams
2007-11-22 16:37 ` Drew Adams
0 siblings, 1 reply; 4+ messages in thread
From: Drew Adams @ 2007-10-23 22:33 UTC (permalink / raw)
To: Bug-Gnu-Emacs
> 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.
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: list-faces-display imposes its own background, doesn't respect special-display-frame-alist
2007-10-23 22:33 ` Drew Adams
@ 2007-11-22 16:37 ` Drew Adams
0 siblings, 0 replies; 4+ messages in thread
From: Drew Adams @ 2007-11-22 16:37 UTC (permalink / raw)
To: Bug-Gnu-Emacs
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
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-11-22 16:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-23 19:53 list-faces-display imposes its own background, doesn't respect special-display-frame-alist Drew Adams
2007-10-23 19:54 ` Drew Adams
2007-10-23 22:33 ` Drew Adams
2007-11-22 16:37 ` Drew Adams
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.