emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog faces.el


From: Chong Yidong
Subject: [Emacs-diffs] emacs/lisp ChangeLog faces.el
Date: Sat, 27 Jun 2009 20:44:08 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      09/06/27 20:44:07

Modified files:
        lisp           : ChangeLog faces.el 

Log message:
        * faces.el (x-handle-named-frame-geometry): Ensure that we have
        opened an X connection before calling x-get-resource (Bug#3194).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.15732&r2=1.15733
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/faces.el?cvsroot=emacs&r1=1.442&r2=1.443

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.15732
retrieving revision 1.15733
diff -u -b -r1.15732 -r1.15733
--- ChangeLog   27 Jun 2009 04:21:14 -0000      1.15732
+++ ChangeLog   27 Jun 2009 20:44:03 -0000      1.15733
@@ -1,5 +1,8 @@
 2009-06-27  Chong Yidong  <address@hidden>
 
+       * faces.el (x-handle-named-frame-geometry): Ensure that we have
+       opened an X connection before calling x-get-resource (Bug#3194).
+
        * play/doctor.el: Remove reference to obsolete website.
        (make-doctor-variables): Correct grammar mistake (Bug#2633).
 

Index: faces.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/faces.el,v
retrieving revision 1.442
retrieving revision 1.443
diff -u -b -r1.442 -r1.443
--- faces.el    19 May 2009 01:28:13 -0000      1.442
+++ faces.el    27 Jun 2009 20:44:07 -0000      1.443
@@ -1921,28 +1921,25 @@
 (defun x-handle-named-frame-geometry (parameters)
   "Add geometry parameters for a named frame to parameter list PARAMETERS.
 Value is the new parameter list."
-  (let* ((name (or (cdr (assq 'name parameters))
-                  (cdr (assq 'name default-frame-alist))))
-        (x-resource-name name)
-        (res-geometry (when name
-                        ;; FIXME: x-get-resource fails if the X
-                        ;; connection is not open, e.g. if we call
-                        ;; make-frame-on-display.  We should detect
-                        ;; this case here, and open the connection.
-                        ;; (Bug#3194).
-                        (ignore-errors
-                          (x-get-resource "geometry" "Geometry")))))
-    (when res-geometry
-      (let ((parsed (x-parse-geometry res-geometry)))
-       ;; If the resource specifies a position, call the position
-       ;; and size "user-specified".
-       (when (or (assq 'top parsed)
-                 (assq 'left parsed))
-         (setq parsed (append '((user-position . t) (user-size . t)) parsed)))
-       ;; Put the geometry parameters at the end.  Copy
-       ;; default-frame-alist so that they go after it.
-       (setq parameters (append parameters default-frame-alist parsed))))
-    parameters))
+  ;; Note that `x-resource-name' has a global meaning.
+  (let ((x-resource-name (or (cdr (assq 'name parameters))
+                            (cdr (assq 'name default-frame-alist)))))
+    (when x-resource-name
+      ;; Before checking X resources, we must have an X connection.
+      (or (window-system)
+         (x-display-list)
+         (x-open-connection (or (cdr (assq 'display parameters))
+                                x-display-name)))
+      (let (res-geometry parsed)
+       (and (setq res-geometry (x-get-resource "geometry" "Geometry"))
+            (setq parsed (x-parse-geometry res-geometry))
+            (setq parameters
+                  (append parameters default-frame-alist parsed
+                          ;; If the resource specifies a position,
+                          ;; take note of that.
+                          (if (or (assq 'top parsed) (assq 'left parsed))
+                              '((user-position . t) (user-size . t)))))))))
+  parameters)
 
 
 (defun x-handle-reverse-video (frame parameters)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]