Fix hiding floating X windows
* exwm-layout.el (exwm-layout--floating-hidden-position): A place far enough from the origin to actually hide floating X window containers. (exwm-layout--show, exwm-layout--hide): Use it.
This commit is contained in:
parent
48b15e25ad
commit
eb49e57f76
1 changed files with 9 additions and 4 deletions
|
@ -40,6 +40,9 @@
|
||||||
"Non-nil to allow switching to buffers on other workspaces."
|
"Non-nil to allow switching to buffers on other workspaces."
|
||||||
:type 'boolean)
|
:type 'boolean)
|
||||||
|
|
||||||
|
(defconst exwm-layout--floating-hidden-position -101
|
||||||
|
"Where to place hidden floating X windows.")
|
||||||
|
|
||||||
(defvar exwm-layout--other-buffer-exclude-buffers nil
|
(defvar exwm-layout--other-buffer-exclude-buffers nil
|
||||||
"List of buffers that should not be selected by `other-buffer'.")
|
"List of buffers that should not be selected by `other-buffer'.")
|
||||||
|
|
||||||
|
@ -114,9 +117,8 @@
|
||||||
(when exwm--floating-frame-position
|
(when exwm--floating-frame-position
|
||||||
(setq frame-x (elt exwm--floating-frame-position 0)
|
(setq frame-x (elt exwm--floating-frame-position 0)
|
||||||
frame-y (elt exwm--floating-frame-position 1)
|
frame-y (elt exwm--floating-frame-position 1)
|
||||||
;; The frame was placed at (-1, -1).
|
x (+ x frame-x (- exwm-layout--floating-hidden-position))
|
||||||
x (+ x frame-x 1)
|
y (+ y frame-y (- exwm-layout--floating-hidden-position)))
|
||||||
y (+ y frame-y 1))
|
|
||||||
(setq exwm--floating-frame-position nil))
|
(setq exwm--floating-frame-position nil))
|
||||||
(exwm--set-geometry (frame-parameter exwm--floating-frame
|
(exwm--set-geometry (frame-parameter exwm--floating-frame
|
||||||
'exwm-container)
|
'exwm-container)
|
||||||
|
@ -152,7 +154,10 @@
|
||||||
:drawable container))))
|
:drawable container))))
|
||||||
(setq exwm--floating-frame-position
|
(setq exwm--floating-frame-position
|
||||||
(vector (slot-value geometry 'x) (slot-value geometry 'y)))
|
(vector (slot-value geometry 'x) (slot-value geometry 'y)))
|
||||||
(exwm--set-geometry container -1 -1 1 1)))
|
(exwm--set-geometry container exwm-layout--floating-hidden-position
|
||||||
|
exwm-layout--floating-hidden-position
|
||||||
|
1
|
||||||
|
1)))
|
||||||
(xcb:+request exwm--connection
|
(xcb:+request exwm--connection
|
||||||
(make-instance 'xcb:ChangeWindowAttributes
|
(make-instance 'xcb:ChangeWindowAttributes
|
||||||
:window id :value-mask xcb:CW:EventMask
|
:window id :value-mask xcb:CW:EventMask
|
||||||
|
|
Loading…
Reference in a new issue