[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm 8a438c2 3/7: Always put the desktop at bottom
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm 8a438c2 3/7: Always put the desktop at bottom |
Date: |
Fri, 12 Aug 2016 14:38:50 +0000 (UTC) |
branch: externals/exwm
commit 8a438c2c172b57fda19c36802bd183d44241af95
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
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.
---
exwm-manage.el | 12 ++++++++++++
exwm-workspace.el | 20 +++++++++++++++++---
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/exwm-manage.el b/exwm-manage.el
index 1dfd3c9..2ec21b3 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))
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 3d3a542..fec83d9 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 ()
- [elpa] externals/exwm updated (8e3fc36 -> 108b394), Chris Feng, 2016/08/12
- [elpa] externals/exwm 6bd85db 2/7: * exwm-manage.el (exwm-manage--scan): Check for possibly, Chris Feng, 2016/08/12
- [elpa] externals/exwm e4ecd79 4/7: * exwm-manage.el (exwm-manage--unmanage-window): Do not clear struts, Chris Feng, 2016/08/12
- [elpa] externals/exwm 8a438c2 3/7: Always put the desktop at bottom,
Chris Feng <=
- [elpa] externals/exwm db5128c 1/7: Fix CreateWindow attributes, Chris Feng, 2016/08/12
- [elpa] externals/exwm 108b394 7/7: Fix _NET_DESKTOP_VIEWPORT, Chris Feng, 2016/08/12
- [elpa] externals/exwm badf1c3 6/7: Raise all docks/panels when switching workspace, Chris Feng, 2016/08/12
- [elpa] externals/exwm ebcc959 5/7: Check for _NET_WM_STATE_FULLSCREEN on managing, Chris Feng, 2016/08/12