From afa42fe3f1f069e403c21f2872347c448b06af58 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 13 Nov 2010 21:09:11 -0500 Subject: [PATCH] Let the cursorColor X resource set the the cursor face (Bug#7392). * lisp/startup.el (command-line): If the cursorColor resource is set, change the cursor face-spec (Bug#7392). * src/xfns.c (Fx_create_frame): Don't check for the cursorColor resource here; it's now done at startup. --- lisp/ChangeLog | 5 +++++ lisp/startup.el | 15 +++++++++++---- src/ChangeLog | 5 +++++ src/xfns.c | 2 -- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index dae413af666..99eca11ee4c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2010-11-14 Chong Yidong + + * startup.el (command-line): If the cursorColor resource is set, + change the cursor face-spec (Bug#7392). + 2010-11-13 Ken Manheimer The main features of the following allout.el changes are: diff --git a/lisp/startup.el b/lisp/startup.el index b77b4b97d5b..8dd76b29741 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -885,14 +885,15 @@ opening the first frame (e.g. open a connection to an X server).") ;; Under X, this creates the X frame and deletes the terminal frame. (unless (daemonp) - ;; Enable or disable the tool-bar and menu-bar. - ;; While we're at it, set `no-blinking-cursor' too. + + ;; If X resources are available, use them to initialize the values + ;; of `tool-bar-mode' and `menu-bar-mode', as well as the value of + ;; `no-blinking-cursor' and the `cursor' face. (cond ((or noninteractive emacs-basic-display) (setq menu-bar-mode nil tool-bar-mode nil no-blinking-cursor t)) - ;; Check X resources if available. ((memq initial-window-system '(x w32 ns)) (let ((no-vals '("no" "off" "false" "0"))) (if (member (x-get-resource "menuBar" "MenuBar") no-vals) @@ -901,7 +902,13 @@ opening the first frame (e.g. open a connection to an X server).") (setq tool-bar-mode nil)) (if (member (x-get-resource "cursorBlink" "CursorBlink") no-vals) - (setq no-blinking-cursor t))))) + (setq no-blinking-cursor t))) + ;; If the cursorColor X resource exists, alter the `cursor' face + ;; spec, but mark it as changed outside of Customize. + (let ((color (x-get-resource "cursorColor" "CursorColor"))) + (when color + (face-spec-set 'cursor `((t (:background ,color)))) + (put 'cursor 'face-modified t))))) (frame-initialize)) (when (fboundp 'x-create-frame) diff --git a/src/ChangeLog b/src/ChangeLog index 98054e08d45..dbd735f72f9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2010-11-14 Chong Yidong + + * xfns.c (Fx_create_frame): Don't check for the cursorColor + resource here; it's now done at startup. + 2010-11-13 Dan Nicolaescu * xmenu.c: Make it clear that ../lwlib/lwlib.h is only needed for Motif. diff --git a/src/xfns.c b/src/xfns.c index 79e21fa0b50..32e390e1e1e 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -3367,8 +3367,6 @@ This function is an internal primitive--use `make-frame' instead. */) "background", "Background", RES_TYPE_STRING); x_default_parameter (f, parms, Qmouse_color, build_string ("black"), "pointerColor", "Foreground", RES_TYPE_STRING); - x_default_parameter (f, parms, Qcursor_color, build_string ("black"), - "cursorColor", "Foreground", RES_TYPE_STRING); x_default_parameter (f, parms, Qborder_color, build_string ("black"), "borderColor", "BorderColor", RES_TYPE_STRING); x_default_parameter (f, parms, Qscreen_gamma, Qnil, -- 2.39.5