mirror of
https://github.com/ch11ng/exwm.git
synced 2024-11-23 19:47:58 +01:00
Remove loading order dependency on `mouse-autoselect-window'
* exwm-core.el (exwm--get-client-event-mask): Renamed from `exwm--client-event-mask' and used as a function. * exwm-floating.el (exwm-floating--unset-floating): * exwm-layout.el (exwm-layout--hide): * exwm-manage.el (exwm-manage--manage-window): Use it.
This commit is contained in:
parent
dd96fffb52
commit
397ca5497e
4 changed files with 10 additions and 9 deletions
|
@ -150,11 +150,12 @@ least SECS seconds later."
|
||||||
,function
|
,function
|
||||||
,@args))
|
,@args))
|
||||||
|
|
||||||
(defconst exwm--client-event-mask (logior xcb:EventMask:StructureNotify
|
(defun exwm--get-client-event-mask ()
|
||||||
|
"Return event mask set on all managed windows."
|
||||||
|
(logior xcb:EventMask:StructureNotify
|
||||||
xcb:EventMask:PropertyChange
|
xcb:EventMask:PropertyChange
|
||||||
(if mouse-autoselect-window
|
(if mouse-autoselect-window
|
||||||
xcb:EventMask:EnterWindow 0))
|
xcb:EventMask:EnterWindow 0)))
|
||||||
"Event mask set on all managed windows.")
|
|
||||||
|
|
||||||
;; Internal variables
|
;; Internal variables
|
||||||
(defvar-local exwm--id nil) ;window ID
|
(defvar-local exwm--id nil) ;window ID
|
||||||
|
|
|
@ -342,7 +342,7 @@ This is also used by X window containers.")
|
||||||
(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
|
||||||
:event-mask exwm--client-event-mask))
|
:event-mask (exwm--get-client-event-mask)))
|
||||||
;; Reparent the floating frame back to the root window.
|
;; Reparent the floating frame back to the root window.
|
||||||
(let ((frame-id (frame-parameter exwm--floating-frame 'exwm-outer-id))
|
(let ((frame-id (frame-parameter exwm--floating-frame 'exwm-outer-id))
|
||||||
(frame-container (frame-parameter exwm--floating-frame
|
(frame-container (frame-parameter exwm--floating-frame
|
||||||
|
|
|
@ -158,7 +158,7 @@
|
||||||
(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
|
||||||
:event-mask exwm--client-event-mask))
|
:event-mask (exwm--get-client-event-mask)))
|
||||||
(exwm-layout--set-state id xcb:icccm:WM_STATE:IconicState)
|
(exwm-layout--set-state id xcb:icccm:WM_STATE:IconicState)
|
||||||
(exwm-layout--auto-iconify)
|
(exwm-layout--auto-iconify)
|
||||||
(xcb:flush exwm--connection))))
|
(xcb:flush exwm--connection))))
|
||||||
|
|
|
@ -195,7 +195,7 @@ You can still make the X windows floating afterwards."
|
||||||
(when (xcb:+request-checked+request-check exwm--connection
|
(when (xcb:+request-checked+request-check exwm--connection
|
||||||
(make-instance 'xcb:ChangeWindowAttributes
|
(make-instance 'xcb:ChangeWindowAttributes
|
||||||
:window id :value-mask xcb:CW:EventMask
|
:window id :value-mask xcb:CW:EventMask
|
||||||
:event-mask exwm--client-event-mask))
|
:event-mask (exwm--get-client-event-mask)))
|
||||||
(throw 'return 'dead))
|
(throw 'return 'dead))
|
||||||
;; Add this X window to save-set.
|
;; Add this X window to save-set.
|
||||||
(xcb:+request exwm--connection
|
(xcb:+request exwm--connection
|
||||||
|
@ -257,7 +257,7 @@ You can still make the X windows floating afterwards."
|
||||||
exwm-window-type)
|
exwm-window-type)
|
||||||
;; Listen for PropertyChange (struts) and
|
;; Listen for PropertyChange (struts) and
|
||||||
;; UnmapNotify/DestroyNotify event of the dock.
|
;; UnmapNotify/DestroyNotify event of the dock.
|
||||||
exwm--client-event-mask
|
(exwm--get-client-event-mask)
|
||||||
xcb:EventMask:NoEvent)))
|
xcb:EventMask:NoEvent)))
|
||||||
;; The window needs to be mapped
|
;; The window needs to be mapped
|
||||||
(xcb:+request exwm--connection
|
(xcb:+request exwm--connection
|
||||||
|
|
Loading…
Reference in a new issue