diff options
| author | Chong Yidong | 2009-06-27 20:44:03 +0000 |
|---|---|---|
| committer | Chong Yidong | 2009-06-27 20:44:03 +0000 |
| commit | e8a2b2da68a192c4e85b4330ad3c6fce569bdb50 (patch) | |
| tree | e4067a7f510108b247609ebceca8f005978a53af /lisp/faces.el | |
| parent | 4e23bedbfa150e4b93add54e11ee06e0e6ebc6e1 (diff) | |
| download | emacs-e8a2b2da68a192c4e85b4330ad3c6fce569bdb50.tar.gz emacs-e8a2b2da68a192c4e85b4330ad3c6fce569bdb50.zip | |
* faces.el (x-handle-named-frame-geometry): Ensure that we have
opened an X connection before calling x-get-resource (Bug#3194).
Diffstat (limited to 'lisp/faces.el')
| -rw-r--r-- | lisp/faces.el | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/lisp/faces.el b/lisp/faces.el index 57d6bd7dcb3..bc7513eab64 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -1921,28 +1921,25 @@ according to the `background-mode' and `display-type' frame parameters." | |||
| 1921 | (defun x-handle-named-frame-geometry (parameters) | 1921 | (defun x-handle-named-frame-geometry (parameters) |
| 1922 | "Add geometry parameters for a named frame to parameter list PARAMETERS. | 1922 | "Add geometry parameters for a named frame to parameter list PARAMETERS. |
| 1923 | Value is the new parameter list." | 1923 | Value is the new parameter list." |
| 1924 | (let* ((name (or (cdr (assq 'name parameters)) | 1924 | ;; Note that `x-resource-name' has a global meaning. |
| 1925 | (cdr (assq 'name default-frame-alist)))) | 1925 | (let ((x-resource-name (or (cdr (assq 'name parameters)) |
| 1926 | (x-resource-name name) | 1926 | (cdr (assq 'name default-frame-alist))))) |
| 1927 | (res-geometry (when name | 1927 | (when x-resource-name |
| 1928 | ;; FIXME: x-get-resource fails if the X | 1928 | ;; Before checking X resources, we must have an X connection. |
| 1929 | ;; connection is not open, e.g. if we call | 1929 | (or (window-system) |
| 1930 | ;; make-frame-on-display. We should detect | 1930 | (x-display-list) |
| 1931 | ;; this case here, and open the connection. | 1931 | (x-open-connection (or (cdr (assq 'display parameters)) |
| 1932 | ;; (Bug#3194). | 1932 | x-display-name))) |
| 1933 | (ignore-errors | 1933 | (let (res-geometry parsed) |
| 1934 | (x-get-resource "geometry" "Geometry"))))) | 1934 | (and (setq res-geometry (x-get-resource "geometry" "Geometry")) |
| 1935 | (when res-geometry | 1935 | (setq parsed (x-parse-geometry res-geometry)) |
| 1936 | (let ((parsed (x-parse-geometry res-geometry))) | 1936 | (setq parameters |
| 1937 | ;; If the resource specifies a position, call the position | 1937 | (append parameters default-frame-alist parsed |
| 1938 | ;; and size "user-specified". | 1938 | ;; If the resource specifies a position, |
| 1939 | (when (or (assq 'top parsed) | 1939 | ;; take note of that. |
| 1940 | (assq 'left parsed)) | 1940 | (if (or (assq 'top parsed) (assq 'left parsed)) |
| 1941 | (setq parsed (append '((user-position . t) (user-size . t)) parsed))) | 1941 | '((user-position . t) (user-size . t))))))))) |
| 1942 | ;; Put the geometry parameters at the end. Copy | 1942 | parameters) |
| 1943 | ;; default-frame-alist so that they go after it. | ||
| 1944 | (setq parameters (append parameters default-frame-alist parsed)))) | ||
| 1945 | parameters)) | ||
| 1946 | 1943 | ||
| 1947 | 1944 | ||
| 1948 | (defun x-handle-reverse-video (frame parameters) | 1945 | (defun x-handle-reverse-video (frame parameters) |