emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/exwm cd7b32d 2/7: Hide minibuffer upon receiving any ev


From: Chris Feng
Subject: [elpa] externals/exwm cd7b32d 2/7: Hide minibuffer upon receiving any event
Date: Wed, 6 Feb 2019 06:35:33 -0500 (EST)

branch: externals/exwm
commit cd7b32d1c203b87d428ea75e5a5e1452d8236742
Author: Adrián Medraño Calvo <address@hidden>
Commit: Adrián Medraño Calvo <address@hidden>

    Hide minibuffer upon receiving any event
    
    * exwm-input.el (exwm-input--event-hook): New variable.
    (exwm-input--on-ButtonPress, exwm-input--on-KeyPress): Run
    `exwm-input--event-hook'.
    * exwm-workspace.el (exwm-workspace--init, exwm-workspace--exit):
    Hide minibuffer upon noticing an event.
---
 exwm-input.el     | 9 +++++++--
 exwm-workspace.el | 7 +++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/exwm-input.el b/exwm-input.el
index c757b09..a7fb16a 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -137,6 +137,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))
@@ -418,7 +421,8 @@ ARGS are additional arguments to CALLBACK."
                     (setq mode (exwm-input--on-ButtonPress-char-mode)))))))))
     (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."
@@ -432,7 +436,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 0f0d10c..d58758f 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" ())
@@ -1584,6 +1585,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
@@ -1604,6 +1608,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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]