mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-24 07:20:37 +00:00
Fix bug #8597 with setting frame background mode on w32 console.
src/w32console.c (Fset_screen_color): Doc fix. (Fget_screen_color): New function. (syms_of_ntterm): Defsubr it. lisp/term/w32console.el (terminal-init-w32console): Call get-screen-color and use its output to set the frame background-mode.
This commit is contained in:
parent
0966ef96e7
commit
b0512a1d79
@ -1,3 +1,9 @@
|
|||||||
|
2011-05-07 Eli Zaretskii <eliz@gnu.org>
|
||||||
|
|
||||||
|
* term/w32console.el (terminal-init-w32console): Call
|
||||||
|
get-screen-color and use its output to set the frame
|
||||||
|
background-mode. (Bug#8597)
|
||||||
|
|
||||||
2011-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
|
2011-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
Make bytecomp.el understand that defmethod defines funs (bug#8631).
|
Make bytecomp.el understand that defmethod defines funs (bug#8631).
|
||||||
|
@ -59,6 +59,19 @@
|
|||||||
(setq colors (cdr colors)
|
(setq colors (cdr colors)
|
||||||
color (car colors))))
|
color (car colors))))
|
||||||
(clear-face-cache)
|
(clear-face-cache)
|
||||||
|
;; Figure out what are the colors of the console window, and set up
|
||||||
|
;; the background-mode correspondingly.
|
||||||
|
(let* ((screen-color (get-screen-color))
|
||||||
|
(bg (cadr screen-color))
|
||||||
|
(descr (tty-color-by-index bg))
|
||||||
|
r g b bg-mode)
|
||||||
|
(setq r (nth 2 descr)
|
||||||
|
g (nth 3 descr)
|
||||||
|
b (nth 4 descr))
|
||||||
|
(if (< (+ r g b) (* .6 (+ 65535 65535 65535)))
|
||||||
|
(setq bg-mode 'dark)
|
||||||
|
(setq bg-mode 'light))
|
||||||
|
(set-terminal-parameter nil 'background-mode bg-mode))
|
||||||
(tty-set-up-initial-frame-faces)
|
(tty-set-up-initial-frame-faces)
|
||||||
(run-hooks 'terminal-init-w32-hook))
|
(run-hooks 'terminal-init-w32-hook))
|
||||||
|
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
2011-05-07 Eli Zaretskii <eliz@gnu.org>
|
2011-05-07 Eli Zaretskii <eliz@gnu.org>
|
||||||
|
|
||||||
|
* w32console.c (Fset_screen_color): Doc fix.
|
||||||
|
(Fget_screen_color): New function.
|
||||||
|
(syms_of_ntterm): Defsubr it.
|
||||||
|
|
||||||
* callproc.c (call_process_cleanup): Don't close and unlink the
|
* callproc.c (call_process_cleanup): Don't close and unlink the
|
||||||
temporary file if Fcall_process didn't create it in the first
|
temporary file if Fcall_process didn't create it in the first
|
||||||
place.
|
place.
|
||||||
|
@ -705,7 +705,9 @@ initialize_w32_display (struct terminal *term)
|
|||||||
|
|
||||||
|
|
||||||
DEFUN ("set-screen-color", Fset_screen_color, Sset_screen_color, 2, 2, 0,
|
DEFUN ("set-screen-color", Fset_screen_color, Sset_screen_color, 2, 2, 0,
|
||||||
doc: /* Set screen colors. */)
|
doc: /* Set screen foreground and background colors.
|
||||||
|
|
||||||
|
Arguments should be indices between 0 and 15, see w32console.el. */)
|
||||||
(Lisp_Object foreground, Lisp_Object background)
|
(Lisp_Object foreground, Lisp_Object background)
|
||||||
{
|
{
|
||||||
char_attr_normal = XFASTINT (foreground) + (XFASTINT (background) << 4);
|
char_attr_normal = XFASTINT (foreground) + (XFASTINT (background) << 4);
|
||||||
@ -714,6 +716,18 @@ DEFUN ("set-screen-color", Fset_screen_color, Sset_screen_color, 2, 2, 0,
|
|||||||
return Qt;
|
return Qt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFUN ("get-screen-color", Fget_screen_color, Sget_screen_color, 0, 0, 0,
|
||||||
|
doc: /* Get color indices of the current screen foreground and background.
|
||||||
|
|
||||||
|
The colors are returned as a list of 2 indices (FOREGROUND BACKGROUND).
|
||||||
|
See w32console.el and `tty-defined-color-alist' for mapping of indices
|
||||||
|
to colors. */)
|
||||||
|
(void)
|
||||||
|
{
|
||||||
|
return Fcons (make_number (char_attr_normal & 0x000f),
|
||||||
|
Fcons (make_number ((char_attr_normal >> 4) & 0x000f), Qnil));
|
||||||
|
}
|
||||||
|
|
||||||
DEFUN ("set-cursor-size", Fset_cursor_size, Sset_cursor_size, 1, 1, 0,
|
DEFUN ("set-cursor-size", Fset_cursor_size, Sset_cursor_size, 1, 1, 0,
|
||||||
doc: /* Set cursor size. */)
|
doc: /* Set cursor size. */)
|
||||||
(Lisp_Object size)
|
(Lisp_Object size)
|
||||||
@ -739,6 +753,7 @@ scroll-back buffer. */);
|
|||||||
w32_use_full_screen_buffer = 0;
|
w32_use_full_screen_buffer = 0;
|
||||||
|
|
||||||
defsubr (&Sset_screen_color);
|
defsubr (&Sset_screen_color);
|
||||||
|
defsubr (&Sget_screen_color);
|
||||||
defsubr (&Sset_cursor_size);
|
defsubr (&Sset_cursor_size);
|
||||||
defsubr (&Sset_message_beep);
|
defsubr (&Sset_message_beep);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user