[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ivy-posframe d9ceee9 181/195: Fix: Regression : not usa
From: |
Feng Shu |
Subject: |
[elpa] externals/ivy-posframe d9ceee9 181/195: Fix: Regression : not usable with tty and gui emacsen under same daemon #69 |
Date: |
Sat, 3 Oct 2020 07:12:09 -0400 (EDT) |
branch: externals/ivy-posframe
commit d9ceee94171767b4aba6c55ebe93e51ccbe0fa8a
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
Fix: Regression : not usable with tty and gui emacsen under same daemon #69
---
ivy-posframe.el | 107 ++++++++++++++++++++++++--------------------------------
1 file changed, 46 insertions(+), 61 deletions(-)
diff --git a/ivy-posframe.el b/ivy-posframe.el
index 7d99b41..91dfd1b 100644
--- a/ivy-posframe.el
+++ b/ivy-posframe.el
@@ -475,53 +475,32 @@ selection, non-nil otherwise."
;;; Advice
-(defmacro ivy-posframe--defun-advice (name arglist &optional docstring &rest
body)
- "Define NAME as a `ivy-posframe' advice function. see `defun'.
-The definition is (lambda ARGLIST [DOCSTRING] BODY...).
-See also the function `interactive'.
-DECL is a declaration, optional, of the form (declare DECLS...) where
-DECLS is a list of elements of the form (PROP . VALUES). These are
-interpreted according to `defun-declarations-alist'.
-The return value is undefined.
-
-\(fn NAME ARGLIST &optional DOCSTRING DECL &rest BODY)"
- (declare (doc-string 3) (indent 2))
- (let ((decls (cond
- ((eq (car-safe docstring) 'declare)
- (prog1 (cdr docstring) (setq docstring nil)))
- ((and (stringp docstring)
- (eq (car-safe (car body)) 'declare))
- (prog1 (cdr (car body)) (setq body (cdr body)))))))
- `(defun ,name ,arglist
- ,(when (stringp docstring) docstring)
- (declare ,@decls)
- (when (display-graphic-p)
- ,(unless (stringp docstring) docstring)
- ,@body))))
-
-(ivy-posframe--defun-advice ivy-posframe--minibuffer-setup (fn &rest args)
+(defun ivy-posframe--minibuffer-setup (fn &rest args)
"Advice function of FN, `ivy--minibuffer-setup' with ARGS."
- (let ((ivy-fixed-height-minibuffer nil))
- (apply fn args))
- (when (and ivy-posframe-hide-minibuffer
- (posframe-workable-p)
- ;; if display-function is not a ivy-posframe style
display-function.
- ;; do not hide minibuffer.
- ;; The hypothesis is that all ivy-posframe style display functions
- ;; have ivy-posframe as name prefix, need improve!
- (string-match-p "^ivy-posframe" (symbol-name
ivy--display-function)))
- (let ((ov (make-overlay (point-min) (point-max) nil nil t)))
- (overlay-put ov 'window (selected-window))
- (overlay-put ov 'ivy-posframe t)
- (overlay-put ov 'face
- (let ((bg-color (face-background 'default nil)))
- `(:background ,bg-color :foreground ,bg-color)))
- (setq-local cursor-type nil))))
-
-(ivy-posframe--defun-advice ivy-posframe--add-prompt (fn &rest args)
+ (if (not (display-graphic-p))
+ (apply fn args)
+ (let ((ivy-fixed-height-minibuffer nil))
+ (apply fn args))
+ (when (and ivy-posframe-hide-minibuffer
+ (posframe-workable-p)
+ ;; if display-function is not a ivy-posframe style
display-function.
+ ;; do not hide minibuffer.
+ ;; The hypothesis is that all ivy-posframe style display
functions
+ ;; have ivy-posframe as name prefix, need improve!
+ (string-match-p "^ivy-posframe" (symbol-name
ivy--display-function)))
+ (let ((ov (make-overlay (point-min) (point-max) nil nil t)))
+ (overlay-put ov 'window (selected-window))
+ (overlay-put ov 'ivy-posframe t)
+ (overlay-put ov 'face
+ (let ((bg-color (face-background 'default nil)))
+ `(:background ,bg-color :foreground ,bg-color)))
+ (setq-local cursor-type nil)))))
+
+(defun ivy-posframe--add-prompt (fn &rest args)
"Add the ivy prompt to the posframe. Advice FN with ARGS."
(apply fn args)
- (unless ivy-posframe--ignore-prompt
+ (when (and (display-graphic-p)
+ (not ivy-posframe--ignore-prompt))
(with-current-buffer (window-buffer (active-minibuffer-window))
(let ((point (point))
(prompt (buffer-string)))
@@ -532,27 +511,33 @@ The return value is undefined.
(insert prompt " \n")
(add-text-properties point (1+ point) '(face
ivy-posframe-cursor)))))))
-(ivy-posframe--defun-advice ivy-posframe--display-function-prop (fn &rest args)
+(defun ivy-posframe--display-function-prop (fn &rest args)
"Around advice of FN with ARGS."
- (let ((ivy-display-functions-props
- (append ivy-display-functions-props
- (mapcar
- (lambda (elm)
- `(,elm :cleanup ivy-posframe-cleanup))
- (mapcar #'cdr ivy-posframe-display-functions-alist)))))
- (apply fn args)))
-
-(ivy-posframe--defun-advice ivy-posframe--height (fn &rest args)
+ (if (not (display-graphic-p))
+ (apply fn args)
+ (let ((ivy-display-functions-props
+ (append ivy-display-functions-props
+ (mapcar
+ (lambda (elm)
+ `(,elm :cleanup ivy-posframe-cleanup))
+ (mapcar #'cdr ivy-posframe-display-functions-alist)))))
+ (apply fn args))))
+
+(defun ivy-posframe--height (fn &rest args)
"Around advide of FN with ARGS."
- (let ((ivy-height-alist
- (append ivy-posframe-height-alist ivy-height-alist)))
- (apply fn args)))
+ (if (not (display-graphic-p))
+ (apply fn args)
+ (let ((ivy-height-alist
+ (append ivy-posframe-height-alist ivy-height-alist)))
+ (apply fn args))))
-(ivy-posframe--defun-advice ivy-posframe--read (fn &rest args)
+(defun ivy-posframe--read (fn &rest args)
"Around advice of FN with AGS."
- (let ((ivy-display-functions-alist
- (append ivy-posframe-display-functions-alist
ivy-display-functions-alist)))
- (apply fn args)))
+ (if (not (display-graphic-p))
+ (apply fn args)
+ (let ((ivy-display-functions-alist
+ (append ivy-posframe-display-functions-alist
ivy-display-functions-alist)))
+ (apply fn args))))
;;;###autoload
(define-minor-mode ivy-posframe-mode
- [elpa] externals/ivy-posframe 9dcdd80 121/195: add ivy--height advice, (continued)
- [elpa] externals/ivy-posframe 9dcdd80 121/195: add ivy--height advice, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 7567182 136/195: let ivy-posframe-enable = (ivy-posframe-mode 1), Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe df179ec 128/195: refine readme, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 590c224 175/195: Fix previous commit, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 112655b 179/195: Add a window/frame top center position option #61, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 57c53ef 173/195: Merge pull request #59 from conao3/fix-ivy-buffer-missing, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 1794866 170/195: not use let variable to make code simple, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 65bc90d 151/195: fix minor mode option, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 2f2c7f6 154/195: Merge pull request #48 from tttuuu888/work-list, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 187288c 167/195: accept declare form, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe d9ceee9 181/195: Fix: Regression : not usable with tty and gui emacsen under same daemon #69,
Feng Shu <=
- [elpa] externals/ivy-posframe aadadf1 185/195: Merge pull request #73 from tttuuu888/work-issue-71-2, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 85f2f7a 184/195: Fix for prompt line duplicated issue in another way. #71, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 61cb32e 192/195: Fix swiper-avy and ivy-posframe are having trouble #80, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe ad83ce5 189/195: Merge pull request #79 from xeijin/patch-1, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 4474956 194/195: let ivy-posframe-swiper-avy work when do not use ivy-posframe function, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 556c9a9 161/195: Check (display-graphic-p) dynamically in advices, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 46b4089 081/195: Merge pull request #33 from conao3/issue/remove-top-level-setup-executing, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe f5da408 157/195: remove ivy-display-function, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe c9a7331 143/195: handle ivy-display-function, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 45dc8ee 137/195: Remove ivy-posframe-demo, ivy-posframe-mode can do same job, Feng Shu, 2020/10/03