Mercurial > emacs
comparison lisp/faces.el @ 109089:bd58a72bb9bb
Fix application of default-frame-alist (Bug#5378).
* lisp/frame.el (make-frame): Add default-frame-alist to the PARAMETERS
argument passed to frame-creation-function (Bug#5378).
* lisp/faces.el (x-handle-named-frame-geometry)
(x-handle-reverse-video, x-create-frame-with-faces)
(face-set-after-frame-default, tty-create-frame-with-faces): Don't
separately consult default-frame-alist. It is now passed as the
PARAMETER argument.
* src/frame.c (get_future_frame_param, Fmake_terminal_frame): Don't
check default-frame-alist.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Wed, 30 Jun 2010 20:14:17 -0400 |
parents | 7c79bc199c73 |
children | d5e4b1b34988 |
comparison
equal
deleted
inserted
replaced
109088:05a72c8a402b | 109089:bd58a72bb9bb |
---|---|
1946 | 1946 |
1947 (defun x-handle-named-frame-geometry (parameters) | 1947 (defun x-handle-named-frame-geometry (parameters) |
1948 "Add geometry parameters for a named frame to parameter list PARAMETERS. | 1948 "Add geometry parameters for a named frame to parameter list PARAMETERS. |
1949 Value is the new parameter list." | 1949 Value is the new parameter list." |
1950 ;; Note that `x-resource-name' has a global meaning. | 1950 ;; Note that `x-resource-name' has a global meaning. |
1951 (let ((x-resource-name (or (cdr (assq 'name parameters)) | 1951 (let ((x-resource-name (cdr (assq 'name parameters)))) |
1952 (cdr (assq 'name default-frame-alist))))) | |
1953 (when x-resource-name | 1952 (when x-resource-name |
1954 ;; Before checking X resources, we must have an X connection. | 1953 ;; Before checking X resources, we must have an X connection. |
1955 (or (window-system) | 1954 (or (window-system) |
1956 (x-display-list) | 1955 (x-display-list) |
1957 (x-open-connection (or (cdr (assq 'display parameters)) | 1956 (x-open-connection (or (cdr (assq 'display parameters)) |
1958 x-display-name))) | 1957 x-display-name))) |
1959 (let (res-geometry parsed) | 1958 (let (res-geometry parsed) |
1960 (and (setq res-geometry (x-get-resource "geometry" "Geometry")) | 1959 (and (setq res-geometry (x-get-resource "geometry" "Geometry")) |
1961 (setq parsed (x-parse-geometry res-geometry)) | 1960 (setq parsed (x-parse-geometry res-geometry)) |
1962 (setq parameters | 1961 (setq parameters |
1963 (append parameters default-frame-alist parsed | 1962 (append parameters parsed |
1964 ;; If the resource specifies a position, | 1963 ;; If the resource specifies a position, |
1965 ;; take note of that. | 1964 ;; take note of that. |
1966 (if (or (assq 'top parsed) (assq 'left parsed)) | 1965 (if (or (assq 'top parsed) (assq 'left parsed)) |
1967 '((user-position . t) (user-size . t))))))))) | 1966 '((user-position . t) (user-size . t))))))))) |
1968 parameters) | 1967 parameters) |
1970 | 1969 |
1971 (defun x-handle-reverse-video (frame parameters) | 1970 (defun x-handle-reverse-video (frame parameters) |
1972 "Handle the reverse-video frame parameter and X resource. | 1971 "Handle the reverse-video frame parameter and X resource. |
1973 `x-create-frame' does not handle this one." | 1972 `x-create-frame' does not handle this one." |
1974 (when (cdr (or (assq 'reverse parameters) | 1973 (when (cdr (or (assq 'reverse parameters) |
1975 (assq 'reverse default-frame-alist) | |
1976 (let ((resource (x-get-resource "reverseVideo" | 1974 (let ((resource (x-get-resource "reverseVideo" |
1977 "ReverseVideo"))) | 1975 "ReverseVideo"))) |
1978 (if resource | 1976 (if resource |
1979 (cons nil (member (downcase resource) | 1977 (cons nil (member (downcase resource) |
1980 '("on" "true"))))))) | 1978 '("on" "true"))))))) |
1996 | 1994 |
1997 (declare-function x-create-frame "xfns.c" (parms)) | 1995 (declare-function x-create-frame "xfns.c" (parms)) |
1998 (declare-function x-setup-function-keys "term/x-win" (frame)) | 1996 (declare-function x-setup-function-keys "term/x-win" (frame)) |
1999 | 1997 |
2000 (defun x-create-frame-with-faces (&optional parameters) | 1998 (defun x-create-frame-with-faces (&optional parameters) |
2001 "Create a frame from optional frame parameters PARAMETERS. | 1999 "Create and return a frame with frame parameters PARAMETERS. |
2002 Parameters not specified by PARAMETERS are taken from | 2000 If PARAMETERS specify a frame name, handle X geometry resources |
2003 `default-frame-alist'. If PARAMETERS specify a frame name, | 2001 for that name. If PARAMETERS includes a `reverse' parameter, or |
2004 handle X geometry resources for that name. If either PARAMETERS | 2002 the X resource ``reverseVideo'' is present, handle that." |
2005 or `default-frame-alist' contains a `reverse' parameter, or | |
2006 the X resource ``reverseVideo'' is present, handle that. | |
2007 Value is the new frame created." | |
2008 (setq parameters (x-handle-named-frame-geometry parameters)) | 2003 (setq parameters (x-handle-named-frame-geometry parameters)) |
2009 (let* ((params (copy-tree parameters)) | 2004 (let* ((params (copy-tree parameters)) |
2010 (visibility-spec (assq 'visibility parameters)) | 2005 (visibility-spec (assq 'visibility parameters)) |
2011 (delayed-params '(foreground-color background-color font | 2006 (delayed-params '(foreground-color background-color font |
2012 border-color cursor-color mouse-color | 2007 border-color cursor-color mouse-color |
2033 (defun face-set-after-frame-default (frame &optional parameters) | 2028 (defun face-set-after-frame-default (frame &optional parameters) |
2034 "Initialize the frame-local faces of FRAME. | 2029 "Initialize the frame-local faces of FRAME. |
2035 Calculate the face definitions using the face specs, custom theme | 2030 Calculate the face definitions using the face specs, custom theme |
2036 settings, X resources, and `face-new-frame-defaults'. | 2031 settings, X resources, and `face-new-frame-defaults'. |
2037 Finally, apply any relevant face attributes found amongst the | 2032 Finally, apply any relevant face attributes found amongst the |
2038 frame parameters in PARAMETERS and `default-frame-alist'." | 2033 frame parameters in PARAMETERS." |
2039 (dolist (face (nreverse (face-list))) ;Why reverse? --Stef | 2034 (dolist (face (nreverse (face-list))) ;Why reverse? --Stef |
2040 (condition-case () | 2035 (condition-case () |
2041 (progn | 2036 (progn |
2042 ;; Initialize faces from face spec and custom theme. | 2037 ;; Initialize faces from face spec and custom theme. |
2043 (face-spec-recalc face frame) | 2038 (face-spec-recalc face frame) |
2059 (scroll-bar-foreground scroll-bar :foreground) | 2054 (scroll-bar-foreground scroll-bar :foreground) |
2060 (scroll-bar-background scroll-bar :background) | 2055 (scroll-bar-background scroll-bar :background) |
2061 (mouse-color mouse :background)))) | 2056 (mouse-color mouse :background)))) |
2062 (dolist (param face-params) | 2057 (dolist (param face-params) |
2063 (let* ((param-name (nth 0 param)) | 2058 (let* ((param-name (nth 0 param)) |
2064 (value (cdr (or (assq param-name parameters) | 2059 (value (cdr (assq param-name parameters)))) |
2065 (assq param-name default-frame-alist))))) | |
2066 (if value | 2060 (if value |
2067 (set-face-attribute (nth 1 param) frame | 2061 (set-face-attribute (nth 1 param) frame |
2068 (nth 2 param) value)))))) | 2062 (nth 2 param) value)))))) |
2069 | 2063 |
2070 (defun tty-handle-reverse-video (frame parameters) | 2064 (defun tty-handle-reverse-video (frame parameters) |
2071 "Handle the reverse-video frame parameter for terminal frames." | 2065 "Handle the reverse-video frame parameter for terminal frames." |
2072 (when (cdr (or (assq 'reverse parameters) | 2066 (when (cdr (assq 'reverse parameters)) |
2073 (assq 'reverse default-frame-alist))) | |
2074 (let* ((params (frame-parameters frame)) | 2067 (let* ((params (frame-parameters frame)) |
2075 (bg (cdr (assq 'foreground-color params))) | 2068 (bg (cdr (assq 'foreground-color params))) |
2076 (fg (cdr (assq 'background-color params)))) | 2069 (fg (cdr (assq 'background-color params)))) |
2077 (modify-frame-parameters frame | 2070 (modify-frame-parameters frame |
2078 (list (cons 'foreground-color fg) | 2071 (list (cons 'foreground-color fg) |
2084 (modify-frame-parameters frame | 2077 (modify-frame-parameters frame |
2085 (list (cons 'cursor-color fg))))))) | 2078 (list (cons 'cursor-color fg))))))) |
2086 | 2079 |
2087 | 2080 |
2088 (defun tty-create-frame-with-faces (&optional parameters) | 2081 (defun tty-create-frame-with-faces (&optional parameters) |
2089 "Create a frame from optional frame parameters PARAMETERS. | 2082 "Create and return a frame from optional frame parameters PARAMETERS. |
2090 Parameters not specified by PARAMETERS are taken from | 2083 If PARAMETERS contains a `reverse' parameter, handle that." |
2091 `default-frame-alist'. If either PARAMETERS or `default-frame-alist' | |
2092 contains a `reverse' parameter, handle that. Value is the new frame | |
2093 created." | |
2094 (let ((frame (make-terminal-frame parameters)) | 2084 (let ((frame (make-terminal-frame parameters)) |
2095 success) | 2085 success) |
2096 (unwind-protect | 2086 (unwind-protect |
2097 (with-selected-frame frame | 2087 (with-selected-frame frame |
2098 (tty-handle-reverse-video frame (frame-parameters frame)) | 2088 (tty-handle-reverse-video frame (frame-parameters frame)) |