changeset 111538:a36ab2f7cad2

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.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 13 Nov 2010 21:09:11 -0500
parents b8d806986840
children ad93f2dd2d38
files lisp/ChangeLog lisp/startup.el src/ChangeLog src/xfns.c
diffstat 4 files changed, 21 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Nov 13 17:55:37 2010 -0800
+++ b/lisp/ChangeLog	Sat Nov 13 21:09:11 2010 -0500
@@ -1,3 +1,8 @@
+2010-11-14  Chong Yidong  <cyd@stupidchicken.com>
+
+	* startup.el (command-line): If the cursorColor resource is set,
+	change the cursor face-spec (Bug#7392).
+
 2010-11-13  Ken Manheimer  <ken.manheimer@gmail.com>
 
 	The main features of the following allout.el changes are:
--- a/lisp/startup.el	Sat Nov 13 17:55:37 2010 -0800
+++ b/lisp/startup.el	Sat Nov 13 21:09:11 2010 -0500
@@ -885,14 +885,15 @@
 
   ;; 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 @@
 	    (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)
--- a/src/ChangeLog	Sat Nov 13 17:55:37 2010 -0800
+++ b/src/ChangeLog	Sat Nov 13 21:09:11 2010 -0500
@@ -1,3 +1,8 @@
+2010-11-14  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xfns.c (Fx_create_frame): Don't check for the cursorColor
+	resource here; it's now done at startup.
+
 2010-11-13  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* xmenu.c: Make it clear that ../lwlib/lwlib.h is only needed for Motif.
--- a/src/xfns.c	Sat Nov 13 17:55:37 2010 -0800
+++ b/src/xfns.c	Sat Nov 13 21:09:11 2010 -0500
@@ -3367,8 +3367,6 @@
 		       "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,