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

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

[elpa] externals/posframe 087a7fc 02/13: Merge pull request #54 from def


From: Feng Shu
Subject: [elpa] externals/posframe 087a7fc 02/13: Merge pull request #54 from defaultxr/master
Date: Sun, 5 Apr 2020 07:58:03 -0400 (EDT)

branch: externals/posframe
commit 087a7fc3c8ba9e9faa3fea2d5404d163b3e31c2f
Merge: 9638b9d 5dc3da4
Author: tumashu <address@hidden>
Commit: GitHub <address@hidden>

    Merge pull request #54 from defaultxr/master
    
    prevent posframes from getting keyboard input
---
 posframe.el | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/posframe.el b/posframe.el
index cd0998b..6ca264d 100644
--- a/posframe.el
+++ b/posframe.el
@@ -595,6 +595,22 @@ You can use `posframe-delete-all' to delete all posframes."
             (cons position height))
       height)))
 
+(defvar posframe--previous-frame nil)
+
+(defun posframe--redirect-posframe-focus ()
+  "Redirect focus from the posframe to the previous frame. This prevents the
+posframe from catching keyboard input if the window manager selects it."
+  (interactive)
+  (if (eq (selected-frame) posframe--frame)
+      (when posframe--previous-frame
+        (redirect-frame-focus posframe--frame posframe--previous-frame))
+    (progn
+      (setf posframe--previous-frame (selected-frame))
+      (when posframe--frame
+        (redirect-frame-focus posframe--frame posframe--previous-frame)))))
+
+(add-hook 'focus-in-hook #'posframe--redirect-posframe-focus)
+
 (defun posframe--mouse-banish (frame)
   "Banish mouse to the (0 . 0) of FRAME.
 FIXME: This is a hacky fix for the mouse focus problem, which like:



reply via email to

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