From 4ac71a7ddc78d1485a7fca7a8dbf4c4f6b4016f2 Mon Sep 17 00:00:00 2001 From: Chris Feng Date: Sat, 16 Jul 2016 14:34:57 +0800 Subject: Add RandR support for docks and reuse workareas * exwm-workspace (exwm-workspace--update-struts): Add RandR support for docks. * exwm-workspace (exwm-workspace--workareas): New variable for storing workareas. (exwm-workspace--update-workareas): Update workareas and set _NET_WORKAREA (replaces `exwm-workspace--set-workareas'). (exwm-workspace--set-fullscreen): Reuse workareas for resizing and drop optional arguments. (exwm-workspace--resize-minibuffer-frame) (exwm-workspace--on-ConfigureNotify): Reuse workareas for resizing/reposition the (optional) dedicated minibuffer frame. * exwm-layout.el (exwm-layout-set-fullscreen): Do not use `exwm-workspace--set-fullscreen' here. * exwm-manage.el (exwm-manage--unmanage-window): * exwm-randr.el (exwm-randr--refresh): * exwm.el (exwm--update-struts-legacy, exwm--update-struts-partial): Update workareas before resizing workspaces. * exwm.el (exwm--update-struts-legacy, exwm--update-struts-partial): Remove the corresponding record on receiving invalid struts. * exwm-workspace.el (exwm-workspace--get-geometry): New utility function for retrieving workspace geometry. --- exwm-manage.el | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'exwm-manage.el') diff --git a/exwm-manage.el b/exwm-manage.el index 359782229de2..18a6795f8a1e 100644 --- a/exwm-manage.el +++ b/exwm-manage.el @@ -252,10 +252,8 @@ corresponding buffer.") (defvar exwm-workspace--list) (declare-function exwm-workspace--update-struts "exwm-workspace.el" ()) -(declare-function exwm-workspace--set-fullscreen "exwm-workspace.el" - (frame &optional no-struts container-only)) -(declare-function exwm-workspace--set-workareas "exwm-workspace.el" - (&optional workareas)) +(declare-function exwm-workspace--update-workareas "exwm-workspace.el" ()) +(declare-function exwm-workspace--set-fullscreen "exwm-workspace.el" (frame)) (defun exwm-manage--unmanage-window (id &optional withdraw-only) "Unmanage window ID. @@ -272,9 +270,9 @@ manager is shutting down." (setq exwm-workspace--id-struts-alist (assq-delete-all id exwm-workspace--id-struts-alist)) (exwm-workspace--update-struts) + (exwm-workspace--update-workareas) (dolist (f exwm-workspace--list) - (exwm-workspace--set-fullscreen f)) - (exwm-workspace--set-workareas)) + (exwm-workspace--set-fullscreen f))) (when (buffer-live-p buffer) (with-current-buffer buffer ;; Flickering seems unavoidable here if the DestroyWindow request is -- cgit 1.4.1