Let the cursorColor X resource set the the cursor face (Bug#7392).
authorChong Yidong <cyd@stupidchicken.com>
Sun, 14 Nov 2010 02:09:11 +0000 (21:09 -0500)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 14 Nov 2010 02:09:11 +0000 (21:09 -0500)
* 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
lisp/startup.el
src/ChangeLog
src/xfns.c

index dae413a..99eca11 100644 (file)
@@ -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:
index b77b4b9..8dd76b2 100644 (file)
@@ -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)
index 98054e0..dbd735f 100644 (file)
@@ -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.
index 79e21fa..32e390e 100644 (file)
@@ -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,