about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2018-05-20T08·14+0800
committerChris Feng <chris.w.feng@gmail.com>2018-05-20T08·14+0800
commitdf8de921132520cccf4236906bcd37aec83fa0ce (patch)
tree969c4d4af806e00317df7783de0b43e42e0eff7b
parent0037cba87b1ceefc3a65fa3c458aa685689e7e27 (diff)
Provide a fallback value for X window geometry
* exwm-manage.el (exwm-manage--update-geometry): Ditto.
-rw-r--r--exwm-layout.el4
-rw-r--r--exwm-manage.el10
2 files changed, 10 insertions, 4 deletions
diff --git a/exwm-layout.el b/exwm-layout.el
index 5b7fe999a1c4..b5685f417e62 100644
--- a/exwm-layout.el
+++ b/exwm-layout.el
@@ -45,9 +45,9 @@
 (defvar exwm-layout--timer nil "Timer used to track echo area changes.")
 
 (defvar exwm-workspace--current)
+(declare-function exwm-input--release-keyboard "exwm-input.el")
+(declare-function exwm-input--grab-keyboard "exwm-input.el")
 (declare-function exwm-input-grab-keyboard "exwm-input.el")
-(declare-function exwm-input-release-keyboard "exwm-input.el")
-(declare-function exwm-reset "exwm.el" ())
 (declare-function exwm-workspace--client-p "exwm-workspace.el"
                   (&optional frame))
 (declare-function exwm-workspace--minibuffer-own-frame-p "exwm-workspace.el")
diff --git a/exwm-manage.el b/exwm-manage.el
index f44071020d2d..ba5bc83b00fa 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -123,8 +123,14 @@ You can still make the X windows floating afterwards."
     (unless (and exwm--geometry (not force))
       (let ((reply (xcb:+request-unchecked+reply exwm--connection
                        (make-instance 'xcb:GetGeometry :drawable id))))
-        (when reply                     ;nil when destroyed
-          (setq exwm--geometry reply))))))
+        (setq exwm--geometry
+              (or reply
+                  ;; Provide a reasonable fallback value.
+                  (make-instance 'xcb:RECTANGLE
+                                 :x 0
+                                 :y 0
+                                 :width (/ (x-display-pixel-width) 2)
+                                 :height (/ (x-display-pixel-height) 2))))))))
 
 (defun exwm-manage--update-ewmh-state (id)
   "Update _NET_WM_STATE."