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

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

[elpa] externals/pyim 10af0e5: * pyim-page.el (pyim-page-refresh): 不再 m


From: ELPA Syncer
Subject: [elpa] externals/pyim 10af0e5: * pyim-page.el (pyim-page-refresh): 不再 minibuffer 中使用 posframe, 可靠性不太好。
Date: Thu, 2 Dec 2021 06:57:36 -0500 (EST)

branch: externals/pyim
commit 10af0e57df3ffd15305d4ec4abb5770a8ba14e50
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    * pyim-page.el (pyim-page-refresh): 不再 minibuffer 中使用 posframe, 可靠性不太好。
---
 pyim-page.el | 50 ++++++++++++++++++++++----------------------------
 1 file changed, 22 insertions(+), 28 deletions(-)

diff --git a/pyim-page.el b/pyim-page.el
index d91e56e..b6d29d6 100644
--- a/pyim-page.el
+++ b/pyim-page.el
@@ -183,8 +183,9 @@ page 的概念,比如,上面的 “nihao” 的 *待选词列表* 就可以
    :candidates 关键字对应的位置,这个 hastable 最终会做为参数传递
    给 `pyim-page-style' 相关的函数,用于生成用于在选词框中显示的
    字符串。"
-  (let* ((end (pyim-page-end))
+  (let* ((message-log-max nil)
          (start (1- (pyim-page-start)))
+         (end (pyim-page-end))
          (candidates pyim-candidates)
          (candidate-showed
           (mapcar (lambda (x)
@@ -203,33 +204,26 @@ page 的概念,比如,上面的 “nihao” 的 *待选词列表* 就可以
     ;; Show page.
     (when (and (null unread-command-events)
                (null unread-post-input-method-events))
-      (let ((message-log-max nil))
-        (cond
-         ((and (eq (selected-window) (minibuffer-window))
-               ;; posframe 可以用到 minibuffer 中,效果良好,popup 效果不好,
-               ;; 会导致 minibuffer 莫名其妙的变大。
-               (not (and (eq pyim-page-tooltip 'posframe)
-                         (functionp 'posframe-workable-p)
-                         (posframe-workable-p))))
-          ;; 在 minibuffer 中输入中文时,使用当前输入的
-          ;; 下一行来显示候选词。
-          (pyim-page-minibuffer-message
-           (concat pyim-page-minibuffer-separator
-                   (pyim-page-style:minibuffer page-info))))
-         ((pyim-probe-exwm-environment)
-          ;; when exwm-xim is used, page should be showed
-          ;; in minibuffer.
-          (message (pyim-page-style:exwm page-info)))
-         ;; 在普通 buffer 中输入中文时,使用 `pyim-page-tooltip'
-         ;; 指定的方式来显示候选词。
-         (pyim-page-tooltip
-          (pyim-page-tooltip-show
-           (let ((func (intern (format "pyim-page-style:%S" pyim-page-style))))
-             (if (functionp func)
-                 (funcall func page-info)
-               (pyim-page-style:two-lines page-info)))
-           (overlay-start pyim-preview-overlay)))
-         (t (message (pyim-page-style:minibuffer page-info))))))))
+      (cond
+       ;; 在 minibuffer 中输入中文时,默认使用当前输入行来显示候选词。以前在
+       ;; minibuffer 中试用过 posframe, 在 linux 环境下,运行还不错,但在
+       ;; windows 环境下,似乎有很严重的性能问题,原因未知。
+       ((eq (selected-window) (minibuffer-window))
+        (pyim-page-minibuffer-message
+         (concat pyim-page-minibuffer-separator
+                 (pyim-page-style:minibuffer page-info))))
+       ;; 在 exwm 环境下使用 exwm-xim 输入中文时,使用 minibuffer 来显示 page。
+       ((pyim-probe-exwm-environment)
+        (message (pyim-page-style:exwm page-info)))
+       ;; 普通 buffer 中,使用 `pyim-page-tooltip' 指定的方式显示候选词。
+       (pyim-page-tooltip
+        (pyim-page-tooltip-show
+         (let ((func (intern (format "pyim-page-style:%S" pyim-page-style))))
+           (if (functionp func)
+               (funcall func page-info)
+             (pyim-page-style:two-lines page-info)))
+         (overlay-start pyim-preview-overlay)))
+       (t (message (pyim-page-style:minibuffer page-info)))))))
 
 (declare-function pyim-process-terminate "pyim-process")
 



reply via email to

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