diff options
author | Chris Feng <chris.w.feng@gmail.com> | 2016-03-01T10·51+0800 |
---|---|---|
committer | Chris Feng <chris.w.feng@gmail.com> | 2016-03-01T10·53+0800 |
commit | 93e42136e3eba95c129c92a928b0c27517f2af7e (patch) | |
tree | 97c4c05ff1190290bebca561a1ab24857dc7e136 | |
parent | 74555b25c2dccacd550762d339175494d3d78562 (diff) |
Avoid unnecessary input focus changes in line-mode
* exwm-input.el (exwm-input--grab-keyboard, exwm-input--release-keyboard): Grab keys on X windows instead to prevent unexpected input focus changes. * exwm-workspace.el (exwm-workspace--show-minibuffer): The workaround for cursor flickering issue is no more needed.
-rw-r--r-- | exwm-input.el | 8 | ||||
-rw-r--r-- | exwm-workspace.el | 9 |
2 files changed, 3 insertions, 14 deletions
diff --git a/exwm-input.el b/exwm-input.el index 943dd7da831f..31125a25c694 100644 --- a/exwm-input.el +++ b/exwm-input.el @@ -325,9 +325,7 @@ It's updated in several occasions, and only used by `exwm-input--set-focus'.") (when (xcb:+request-checked+request-check exwm--connection (make-instance 'xcb:GrabKey :owner-events 0 - :grab-window - (with-current-buffer (exwm--id->buffer id) - exwm--container) + :grab-window id :modifiers xcb:ModMask:Any :key xcb:Grab:Any :pointer-mode xcb:GrabMode:Async @@ -342,9 +340,7 @@ It's updated in several occasions, and only used by `exwm-input--set-focus'.") (when (xcb:+request-checked+request-check exwm--connection (make-instance 'xcb:UngrabKey :key xcb:Grab:Any - :grab-window - (with-current-buffer (exwm--id->buffer id) - exwm--container) + :grab-window id :modifiers xcb:ModMask:Any)) (exwm--log "Failed to release keyboard for #x%x" id)) (setq exwm--on-KeyPress #'exwm-input--on-KeyPress-char-mode))) diff --git a/exwm-workspace.el b/exwm-workspace.el index 89bb6940b05b..6fc38d4a32bb 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -513,14 +513,7 @@ The optional FORCE option is for internal use only." (make-instance 'xcb:MapWindow :window (frame-parameter exwm-workspace--minibuffer 'exwm-container))) - (xcb:flush exwm--connection) - ;; Unfortunately we need the following lines to workaround a cursor - ;; flickering issue for line-mode floating X windows. They just make the - ;; minibuffer appear to be focused. - (with-current-buffer (window-buffer (minibuffer-window - exwm-workspace--minibuffer)) - (setq cursor-in-non-selected-windows - (frame-parameter exwm-workspace--minibuffer 'cursor-type)))) + (xcb:flush exwm--connection)) (defun exwm-workspace--hide-minibuffer () "Hide the minibuffer frame." |