diff options
author | Chris Feng <chris.w.feng@gmail.com> | 2016-08-12T11·22+0800 |
---|---|---|
committer | Chris Feng <chris.w.feng@gmail.com> | 2016-08-12T11·22+0800 |
commit | 8a438c2c172b57fda19c36802bd183d44241af95 (patch) | |
tree | b7e09f9de264626eadd41d7c745e08c32a21c823 /exwm-manage.el | |
parent | 6bd85db30053b493e079893af0ef9668d134057d (diff) |
Always put the desktop at bottom
* exwm-manage.el (exwm-manage--desktop): New variable for recording the desktop X window. (exwm-manage--manage-window): Check for desktop. * exwm-workspace.el (exwm-workspace--resize-minibuffer-frame) (exwm-workspace--hide-minibuffer): Put the minibuffer container above desktop if any.
Diffstat (limited to 'exwm-manage.el')
-rw-r--r-- | exwm-manage.el | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/exwm-manage.el b/exwm-manage.el index 1dfd3c96cbf1..2ec21b3ed382 100644 --- a/exwm-manage.el +++ b/exwm-manage.el @@ -37,6 +37,8 @@ You can still make the X windows floating afterwards.") "Normal hook run after a window is just managed, in the context of the corresponding buffer.") +(defvar exwm-manage--desktop nil "The desktop X window.") + (defun exwm-manage--update-geometry (id &optional force) "Update window geometry." (with-current-buffer (exwm--id->buffer id) @@ -198,6 +200,16 @@ corresponding buffer.") :y (/ (- (exwm-workspace--current-height) height) 2))))) + ;; Check for desktop. + (when (memq xcb:Atom:_NET_WM_WINDOW_TYPE_DESKTOP exwm-window-type) + ;; There should be only one desktop X window. + (setq exwm-manage--desktop id) + ;; Put it at bottom. + (xcb:+request exwm--connection + (make-instance 'xcb:ConfigureWindow + :window id + :value-mask xcb:ConfigWindow:StackMode + :stack-mode xcb:StackMode:Below))) (xcb:flush exwm--connection) (setq exwm--id-buffer-alist (assq-delete-all id exwm--id-buffer-alist)) (let ((kill-buffer-query-functions nil)) |