diff options
author | Chris Feng <chris.w.feng@gmail.com> | 2016-07-12T10·35+0800 |
---|---|---|
committer | Chris Feng <chris.w.feng@gmail.com> | 2016-07-12T10·35+0800 |
commit | 650ed0013c3fac9e88328086d1f4a029f4fb7221 (patch) | |
tree | e737fa39af0a669502fa9fd93fdc7083ea519968 /exwm-layout.el | |
parent | 0863f4149062089abdadd0dd795ad17d0e73da03 (diff) |
Add initial support for dock (panel) applications
* exwm-layout.el (exwm-layout--fullscreen-frame-count) (exwm-layout--set-frame-fullscreen): Moved to workspace module. * exwm-workspace.el (exwm-workspace--fullscreen-frame-count) (exwm-workspace--set-fullscreen): Moved from layout module. * exwm-manage.el (exwm-manage--manage-window): Update struts for dock applications. * exwm-workspace.el (exwm-workspace--strut) (exwm-workspace--strut-is-partial): New variables for storing struts. (exwm-workspace--resize-minibuffer-frame) (exwm-workspace--on-ConfigureNotify): Take struts into consideration. * exwm.el (exwm--update-strut-legacy, exwm--update-strut-partial) (exwm--update-strut): New functions for updating _NET_WM_STRUT or _NET_WM_STRUT_PARTIAL. (exwm--on-PropertyNotify): Update struts on corresponding event. (exwm--init-icccm-ewmh): Declare _NET_WM_STRUT and _NET_WM_STRUT_PARTIAL as supported. * exwm-workspace.el (exwm-workspace--update-workareas): Dedicated function for updating _NET_WORKAREA. * exwm-randr.el (exwm-randr--refresh): * exwm-workspace.el (exwm-workspace--init): Use `exwm-workspace--update-workareas'. * exwm.el (exwm--init-icccm-ewmh): Do not set _NET_WORKAREA here.
Diffstat (limited to 'exwm-layout.el')
-rw-r--r-- | exwm-layout.el | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/exwm-layout.el b/exwm-layout.el index 0ce1fdcace60..2d855800850d 100644 --- a/exwm-layout.el +++ b/exwm-layout.el @@ -213,34 +213,6 @@ (setq exwm--fullscreen nil) (call-interactively #'exwm-input-grab-keyboard))) -(defvar exwm-layout--fullscreen-frame-count 0 - "Count the fullscreen workspace frames.") - -;; This function is superficially similar to `exwm-layout-set-fullscreen', but -;; they do very different things: `exwm-layout--set-frame-fullscreen' resizes a -;; frame to the actual monitor size, `exwm-layout-set-fullscreen' resizes an X -;; window to the frame size. -(defun exwm-layout--set-frame-fullscreen (frame) - "Make frame FRAME fullscreen, with regard to its RandR output if applicable." - (let ((geometry (or (frame-parameter frame 'exwm-geometry) - (xcb:+request-unchecked+reply exwm--connection - (make-instance 'xcb:GetGeometry - :drawable exwm--root)) - (make-instance 'xcb:RECTANGLE :x 0 :y 0 - :width (x-display-pixel-width) - :height (x-display-pixel-height)))) - (id (frame-parameter frame 'exwm-outer-id)) - (container (frame-parameter frame 'exwm-container)) - (workspace (frame-parameter frame 'exwm-workspace))) - (with-slots (x y width height) geometry - (when (and (eq frame exwm-workspace--current) - (exwm-workspace--minibuffer-own-frame-p)) - (exwm-workspace--resize-minibuffer-frame width height)) - (exwm-layout--resize-container id container 0 0 width height) - (exwm-layout--resize-container nil workspace x y width height t) - (xcb:flush exwm--connection))) - (cl-incf exwm-layout--fullscreen-frame-count)) - (defvar exwm-layout--other-buffer-exclude-exwm-mode-buffers nil "When non-nil, prevent EXWM buffers from being selected by `other-buffer'.") |