[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm 225c68d 7/7: Merge branch 'retain-echo-area-until-
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm 225c68d 7/7: Merge branch 'retain-echo-area-until-input' of https://github.com/medranocalvo/exwm into medranocalvo/retain-echo-area-until-input |
Date: |
Wed, 6 Feb 2019 06:35:34 -0500 (EST) |
branch: externals/exwm
commit 225c68d4ce5fd3c9726b27eb6fc3ab2b223d2ec3
Merge: e157282 cd7b32d
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Merge branch 'retain-echo-area-until-input' of
https://github.com/medranocalvo/exwm into
medranocalvo/retain-echo-area-until-input
---
exwm-input.el | 9 +++++++--
exwm-workspace.el | 20 +++++++++++++++++++-
2 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/exwm-input.el b/exwm-input.el
index 04020ac..d0ae4ad 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -140,6 +140,9 @@ defined in `exwm-mode-map' here."
(defvar exwm-input--update-focus-window nil "The (Emacs) window to be focused.
This value should always be overwritten.")
+(defvar exwm-input--event-hook nil
+ "Hook to run when EXWM receives an event.")
+
(defvar exwm-workspace--current)
(declare-function exwm-floating--do-moveresize "exwm-floating.el"
(data _synthetic))
@@ -430,7 +433,8 @@ ARGS are additional arguments to CALLBACK."
(setq mode xcb:Allow:ReplayPointer))))
(xcb:+request exwm--connection
(make-instance 'xcb:AllowEvents :mode mode :time xcb:Time:CurrentTime))
- (xcb:flush exwm--connection)))
+ (xcb:flush exwm--connection))
+ (run-hooks 'exwm-input--event-hook))
(defun exwm-input--on-KeyPress (data _synthetic)
"Handle KeyPress event."
@@ -444,7 +448,8 @@ ARGS are additional arguments to CALLBACK."
(exwm-input--on-KeyPress-line-mode obj data))
(char-mode
(exwm-input--on-KeyPress-char-mode obj data)))
- (exwm-input--on-KeyPress-char-mode obj))))
+ (exwm-input--on-KeyPress-char-mode obj)))
+ (run-hooks 'exwm-input--event-hook))
(defun exwm-input--on-CreateNotify (data _synthetic)
"Handle CreateNotify events."
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 5a84ec9..7832873 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -128,6 +128,7 @@ Please manually run the hook
`exwm-workspace-list-change-hook' afterwards.")
(defvar exwm-workspace--workareas nil "Workareas (struts excluded).")
(defvar exwm-input--during-command)
+(defvar exwm-input--event-hook)
(defvar exwm-layout-show-all-buffers)
(defvar exwm-manage--desktop)
(declare-function exwm-input--on-buffer-list-update "exwm-input.el" ())
@@ -1221,7 +1222,18 @@ Please check `exwm-workspace--minibuffer-own-frame-p'
first."
input-method-use-echo-area)
(setq exwm-workspace--display-echo-area-timer
(run-with-timer exwm-workspace-display-echo-area-timeout nil
- #'exwm-workspace--on-echo-area-clear)))))
+ #'exwm-workspace--echo-area-maybe-clear)))))
+
+(defun exwm-workspace--echo-area-maybe-clear ()
+ "Eventually clear the echo area container."
+ (exwm--log)
+ (if (not (current-message))
+ (exwm-workspace--on-echo-area-clear)
+ ;; Reschedule.
+ (cancel-timer exwm-workspace--display-echo-area-timer)
+ (setq exwm-workspace--display-echo-area-timer
+ (run-with-timer exwm-workspace-display-echo-area-timeout nil
+ #'exwm-workspace--echo-area-maybe-clear))))
(defun exwm-workspace--on-echo-area-clear ()
"Run in echo-area-clear-hook to hide echo area container."
@@ -1598,6 +1610,9 @@ applied to all subsequently created X frames."
(add-hook 'after-make-frame-functions
#'exwm-workspace--on-after-make-frame)
(add-hook 'delete-frame-functions #'exwm-workspace--on-delete-frame)
+ (when (exwm-workspace--minibuffer-own-frame-p)
+ (add-hook 'exwm-input--event-hook
+ #'exwm-workspace--on-echo-area-clear))
;; Switch to the first workspace
(exwm-workspace-switch 0 t)
;; Prevent frame parameters introduced by this module from being
@@ -1619,6 +1634,9 @@ applied to all subsequently created X frames."
#'exwm-workspace--on-after-make-frame)
(remove-hook 'delete-frame-functions
#'exwm-workspace--on-delete-frame)
+ (when (exwm-workspace--minibuffer-own-frame-p)
+ (remove-hook 'exwm-input--event-hook
+ #'exwm-workspace--on-echo-area-clear))
;; Hide & reparent out all frames (save-set can't be used here since
;; X windows will be re-mapped).
(setq exwm-workspace--current nil)
- [elpa] externals/exwm updated (4462981 -> 225c68d), Chris Feng, 2019/02/06
- [elpa] externals/exwm 97b1fb7 4/7: Do the same for `exwm-input-global-keys', Chris Feng, 2019/02/06
- [elpa] externals/exwm ec108a6 3/7: Cleanup simulation key config issues, Chris Feng, 2019/02/06
- [elpa] externals/exwm cd7b32d 2/7: Hide minibuffer upon receiving any event, Chris Feng, 2019/02/06
- [elpa] externals/exwm 225c68d 7/7: Merge branch 'retain-echo-area-until-input' of https://github.com/medranocalvo/exwm into medranocalvo/retain-echo-area-until-input,
Chris Feng <=
- [elpa] externals/exwm e157282 6/7: Merge branch 'ieure/default-simulation-keys' into externals/exwm, Chris Feng, 2019/02/06
- [elpa] externals/exwm 0dd909a 1/7: Stop hiding the minibuffer when a message is being displayed, Chris Feng, 2019/02/06
- [elpa] externals/exwm 0f7269c 5/7: Add input method support, Chris Feng, 2019/02/06