1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-02 11:21:42 +00:00

Fix theme and X-resource interactions for the cursor face.

* lisp/startup.el (command-line): Save the cursor's theme-face
directly, instead of using face-override-spec.

* lisp/custom.el (load-theme): Minor optimization in assigning faces.
This commit is contained in:
Chong Yidong 2011-04-04 21:21:52 -04:00
parent 6f4e1aedda
commit 3b2ff876a5
3 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2011-04-05 Chong Yidong <cyd@stupidchicken.com>
* startup.el (command-line): Save the cursor's theme-face
directly, instead of using face-override-spec.
* custom.el (load-theme): Minor optimization in assigning faces.
2011-04-04 Juanma Barranquero <lekktu@gmail.com>
* help-fns.el (describe-variable): Complete all variables having

View File

@ -1151,6 +1151,20 @@ Return t if THEME was successfully loaded, nil otherwise."
(custom-theme-load-confirm hash))
(let ((custom--inhibit-theme-enable t))
(eval-buffer))
;; Optimization: if the theme changes the `default' face, put that
;; entry first. This avoids some `frame-set-background-mode' rigmarole
;; by assigning the new background immediately.
(let* ((settings (get theme 'theme-settings))
(tail settings)
found)
(while (and tail (not found))
(and (eq (nth 0 (car tail)) 'theme-face)
(eq (nth 1 (car tail)) 'default)
(setq found (car tail)))
(setq tail (cdr tail)))
(if found
(put theme 'theme-settings (cons found (delq found settings)))))
;; Finally, enable the theme.
(unless no-enable
(enable-theme theme))
t))))

View File

@ -906,7 +906,8 @@ opening the first frame (e.g. open a connection to an X server).")
;; 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 'theme-face
`((changed ((t :background ,color)))))
(put 'cursor 'face-modified t)))))
(frame-initialize))