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-workspace.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-workspace.el')
-rw-r--r-- | exwm-workspace.el | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/exwm-workspace.el b/exwm-workspace.el index 3d3a542eaf6b..fec83d9147e1 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -29,6 +29,8 @@ (require 'exwm-core) +(defvar exwm-manage--desktop) + (defvar exwm-workspace-number 1 "Initial number of workspaces.") (defvar exwm-workspace--list nil "List of all workspaces (Emacs frames).") (defvar exwm-workspace--current nil "Current active workspace.") @@ -369,11 +371,17 @@ If the minibuffer is detached, this value is 0.") :value-mask (logior xcb:ConfigWindow:X xcb:ConfigWindow:Y xcb:ConfigWindow:Width + (if exwm-manage--desktop + xcb:ConfigWindow:Sibling + 0) xcb:ConfigWindow:StackMode) :x (aref workarea 0) :y y :width width - :stack-mode xcb:StackMode:Below)) + :sibling exwm-manage--desktop + :stack-mode (if exwm-manage--desktop + xcb:StackMode:Above + xcb:StackMode:Below))) (xcb:+request exwm--connection (make-instance 'xcb:ConfigureWindow :window (frame-parameter exwm-workspace--minibuffer @@ -987,8 +995,14 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first." (make-instance 'xcb:ConfigureWindow :window (frame-parameter exwm-workspace--minibuffer 'exwm-container) - :value-mask xcb:ConfigWindow:StackMode - :stack-mode xcb:StackMode:Below)) + :value-mask (logior (if exwm-manage--desktop + xcb:ConfigWindow:Sibling + 0) + xcb:ConfigWindow:StackMode) + :sibling exwm-manage--desktop + :stack-mode (if exwm-manage--desktop + xcb:StackMode:Above + xcb:StackMode:Below))) (xcb:flush exwm--connection)) (defun exwm-workspace--on-minibuffer-setup () |