Ignore the next enter-notify after changing the workspace.
This commit is contained in:
parent
2928e57803
commit
adc01826f2
|
@ -424,7 +424,12 @@
|
||||||
(window-exists? dpy (client:window client))
|
(window-exists? dpy (client:window client))
|
||||||
(not (eq? client (wm-current-client wm)))
|
(not (eq? client (wm-current-client wm)))
|
||||||
(not (window-contains-focus? dpy (client:window client))))
|
(not (window-contains-focus? dpy (client:window client))))
|
||||||
(wm-select-client wm client (crossing-event-time xevent))))
|
(if (ignore-next-enter-notify?)
|
||||||
|
(begin
|
||||||
|
(accept-next-enter-notify!)
|
||||||
|
(if (not (wm-current-client wm))
|
||||||
|
(wm-select-client wm client (crossing-event-time xevent))))
|
||||||
|
(wm-select-client wm client (crossing-event-time xevent)))))
|
||||||
|
|
||||||
((eq? (event-type button-press) type)
|
((eq? (event-type button-press) type)
|
||||||
(if (memq 'click (get-option-value (wm:options wm) 'focus-policy))
|
(if (memq 'click (get-option-value (wm:options wm) 'focus-policy))
|
||||||
|
@ -503,6 +508,19 @@
|
||||||
(get-transient-for (wm:dpy wm) (client:window c)))))
|
(get-transient-for (wm:dpy wm) (client:window c)))))
|
||||||
(wm:clients wm)))
|
(wm:clients wm)))
|
||||||
|
|
||||||
|
;; ignoring the next enter-notify
|
||||||
|
(define (ignore-next-enter-notify!)
|
||||||
|
(set! *ignore-next-enter-notify* #t))
|
||||||
|
|
||||||
|
(define (ignore-next-enter-notify?)
|
||||||
|
*ignore-next-enter-notify*)
|
||||||
|
|
||||||
|
(define *ignore-next-enter-notify* #f)
|
||||||
|
|
||||||
|
(define (accept-next-enter-notify!)
|
||||||
|
(set! *ignore-next-enter-notify* #f))
|
||||||
|
|
||||||
|
|
||||||
;; *** client names **************************************************
|
;; *** client names **************************************************
|
||||||
|
|
||||||
(define *client-names* '()) ;; (window oname name)
|
(define *client-names* '()) ;; (window oname name)
|
||||||
|
|
|
@ -97,10 +97,11 @@
|
||||||
(manager-type :syntax) manager-types manager-type-name
|
(manager-type :syntax) manager-types manager-type-name
|
||||||
create-wm destroy-wm
|
create-wm destroy-wm
|
||||||
wm-clients wm-current-client
|
wm-clients wm-current-client
|
||||||
|
|
||||||
wm-manage-window wm-unmanage-window wm-select-client
|
wm-manage-window wm-unmanage-window wm-select-client
|
||||||
wm-configure-window wm-iconify-window wm-maximize-window
|
wm-configure-window wm-iconify-window wm-maximize-window
|
||||||
|
|
||||||
|
ignore-next-enter-notify!
|
||||||
|
|
||||||
client? client:window client:client-window
|
client? client:window client:client-window
|
||||||
client:data set-client:data!
|
client:data set-client:data!
|
||||||
client-name find-window-by-name get-all-window-names
|
client-name find-window-by-name get-all-window-names
|
||||||
|
|
|
@ -119,8 +119,10 @@
|
||||||
(let ((i (car msg))
|
(let ((i (car msg))
|
||||||
(cs (wm-clients wm)))
|
(cs (wm-clients wm)))
|
||||||
(if (< i (length cs))
|
(if (< i (length cs))
|
||||||
(wm-select-client wm (list-ref cs i)
|
(begin
|
||||||
(second msg)))))
|
(ignore-next-enter-notify!)
|
||||||
|
(wm-select-client wm (list-ref cs i)
|
||||||
|
(second msg))))))
|
||||||
(loop)))))
|
(loop)))))
|
||||||
wm))
|
wm))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue