implemented focus-policy click (click-to-focus)
This commit is contained in:
parent
6aeb922953
commit
fd4522df8e
|
@ -315,6 +315,11 @@
|
||||||
(client (make-client window client-window in-channel #f #f)))
|
(client (make-client window client-window in-channel #f #f)))
|
||||||
(define-cursor dpy client-window
|
(define-cursor dpy client-window
|
||||||
(get-option-value (wm:options wm) 'client-cursor))
|
(get-option-value (wm:options wm) 'client-cursor))
|
||||||
|
(if (memq 'click (get-option-value (wm:options wm) 'focus-policy))
|
||||||
|
;; Note: won't work recursively (manager in manager)
|
||||||
|
(grab-button dpy (button button1) (state-set) client-window
|
||||||
|
#t (event-mask button-press button-release)
|
||||||
|
(grab-mode sync) (grab-mode async) none none))
|
||||||
(reparent-window dpy window client-window 0 0)
|
(reparent-window dpy window client-window 0 0)
|
||||||
(create-client-handler wm client)
|
(create-client-handler wm client)
|
||||||
client))
|
client))
|
||||||
|
@ -420,9 +425,16 @@
|
||||||
(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))))
|
(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))
|
||||||
;; (wm-select-client wm client (button-event-time xevent))))
|
(begin
|
||||||
|
(wm-select-client wm client (button-event-time xevent))
|
||||||
|
(if (not (eq? (button-event-subwindow xevent)
|
||||||
|
(client:client-window client)))
|
||||||
|
(allow-events dpy (event-mode replay-pointer)
|
||||||
|
(button-event-time xevent))
|
||||||
|
(allow-events dpy (event-mode async-pointer)
|
||||||
|
(button-event-time xevent))))))
|
||||||
|
|
||||||
((destroy-window-event? xevent)
|
((destroy-window-event? xevent)
|
||||||
(exit 'destroy)))))
|
(exit 'destroy)))))
|
||||||
|
|
Loading…
Reference in New Issue