about summary refs log tree commit diff
path: root/exwm-manage.el
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2016-07-30T11·01+0800
committerChris Feng <chris.w.feng@gmail.com>2016-07-30T11·01+0800
commit1e78045f958edbb2f3ef7c21953f8b55b3bbae42 (patch)
treeddfd21401efb21e2e435622f8747c846b7178571 /exwm-manage.el
parentb87f4fbd7170ec156d6fa575584f55c25dd1da1b (diff)
Add restart support
* exwm-input.el (exwm-input--exit): Cancel timers.

* exwm-manage.el (exwm-manage--manage-window): Add reparented X windows
to save-set.
* exwm-systemtray.el (exwm-systemtray--embed): Add embeded icons to
save-set.

* exwm-workspace.el (exwm-workspace--confirm-kill-emacs): No need to
unmanage; also hide Emacs frames; always call `exwm--exit'.

* exwm.el (exwm-restart): New command for restarting EXWM.
(exwm--exit-icccm-ewmh): New function for cleaning up ICCCM/EWMH
properties.
(exwm-exit-hook): Update doc string.
(exwm--exit): Call `exwm--exit-icccm-ewmh' and do not reset variables.
Diffstat (limited to 'exwm-manage.el')
-rw-r--r--exwm-manage.el5
1 files changed, 5 insertions, 0 deletions
diff --git a/exwm-manage.el b/exwm-manage.el
index 16abe9845bc3..0b7b475590b3 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -112,6 +112,11 @@ corresponding buffer.")
                              :window id :value-mask xcb:CW:EventMask
                              :event-mask exwm--client-event-mask))
       (throw 'return 'dead))
+    ;; Add this X window to save-set.
+    (xcb:+request exwm--connection
+        (make-instance 'xcb:ChangeSaveSet
+                       :mode xcb:SetMode:Insert
+                       :window id))
     (with-current-buffer (generate-new-buffer "*EXWM*")
       ;; Keep the oldest X window first.
       (setq exwm--id-buffer-alist