[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master eb6623b 13/13: Merge commit 'a8c24d676c6e1a47ea4b010633a31
From: |
Feng Shu |
Subject: |
[elpa] master eb6623b 13/13: Merge commit 'a8c24d676c6e1a47ea4b010633a31571d59f506f' |
Date: |
Thu, 8 Mar 2018 03:59:42 -0500 (EST) |
branch: master
commit eb6623b5c4f499becfaf8faddf311090cc46f353
Merge: da7767a a8c24d6
Author: Feng Shu <address@hidden>
Commit: Feng Shu <address@hidden>
Merge commit 'a8c24d676c6e1a47ea4b010633a31571d59f506f'
---
packages/posframe/.gitignore | 1 +
packages/posframe/posframe.el | 81 +++++++++++++++++++++++++++++--------------
2 files changed, 56 insertions(+), 26 deletions(-)
diff --git a/packages/posframe/.gitignore b/packages/posframe/.gitignore
new file mode 100644
index 0000000..b0936e8
--- /dev/null
+++ b/packages/posframe/.gitignore
@@ -0,0 +1 @@
+ChangeLog
\ No newline at end of file
diff --git a/packages/posframe/posframe.el b/packages/posframe/posframe.el
index 066df4e..a30c99a 100644
--- a/packages/posframe/posframe.el
+++ b/packages/posframe/posframe.el
@@ -5,7 +5,7 @@
;; Author: Feng Shu <address@hidden>
;; Maintainer: Feng Shu <address@hidden>
;; URL: https://github.com/tumashu/posframe
-;; Version: 0.1.0
+;; Version: 0.2.0
;; Keywords: tooltip
;; Package-Requires: ((emacs "26"))
@@ -140,7 +140,9 @@ frame.")
right-fringe
font
keep-ratio
- override-parameters)
+ override-parameters
+ respect-header-line
+ respect-mode-line)
"Create a child-frame for posframe.
This posframe's buffer is POSFRAME-BUFFER."
(let ((left-fringe (or left-fringe 0))
@@ -154,18 +156,22 @@ This posframe's buffer is POSFRAME-BUFFER."
left-fringe
font
keep-ratio
- override-parameters)))
+ override-parameters
+ respect-header-line
+ respect-mode-line)))
(with-current-buffer posframe-buffer
;; Many variables take effect after call `set-window-buffer'
- (setq-local left-fringe-width left-fringe)
- (setq-local right-fringe-width right-fringe)
+ (setq-local left-fringe-width nil)
+ (setq-local right-fringe-width nil)
(setq-local fringes-outside-margins 0)
(setq-local truncate-lines t)
- (setq-local mode-line-format nil)
- (setq-local header-line-format nil)
(setq-local cursor-type nil)
(setq-local cursor-in-non-selected-windows nil)
(setq-local show-trailing-whitespace nil)
+ (unless respect-mode-line
+ (setq-local mode-line-format nil))
+ (unless respect-header-line
+ (setq-local header-line-format nil))
;; Create child-frame
(unless (and (frame-live-p posframe--frame)
@@ -189,7 +195,8 @@ This posframe's buffer is POSFRAME-BUFFER."
(cons 'font font))
(parent-frame . ,(or parent-frame (window-frame)))
(keep-ratio ,keep-ratio)
- (posframe-buffer . ,posframe-buffer)
+ (posframe-buffer . ,(cons (buffer-name posframe-buffer)
+ posframe-buffer))
(no-accept-focus . t)
(min-width . 0)
(min-height . 0)
@@ -216,8 +223,10 @@ This posframe's buffer is POSFRAME-BUFFER."
(desktop-dont-save . t))))
(let ((posframe-window (frame-root-window posframe--frame)))
;; This method is more stable than 'setq mode/header-line-format nil'
- (set-window-parameter posframe-window 'mode-line-format 'none)
- (set-window-parameter posframe-window 'header-line-format 'none)
+ (unless respect-mode-line
+ (set-window-parameter posframe-window 'mode-line-format 'none))
+ (unless respect-header-line
+ (set-window-parameter posframe-window 'header-line-format 'none))
(set-window-buffer posframe-window posframe-buffer)))
posframe--frame)))
@@ -237,6 +246,8 @@ This posframe's buffer is POSFRAME-BUFFER."
font
foreground-color
background-color
+ respect-header-line
+ respect-mode-line
no-properties
keep-ratio
override-parameters
@@ -294,6 +305,10 @@ By default, posframe's foreground and background color are
deriverd from current frame, user can set them with the help
of FOREGROUND-COLOR and BACKGROUND-COLOR.
+By default, posframe will force hide header-line and mode-line
+If user want to show header-line or mode-line in posframe,
+set RESPECT-HEADER-LINE or RESPECT-MODE-LINE to t.
+
OVERRIDE-PARAMETERS is very powful, *all* the frame parameters
used by posframe's frame can be overrided by it.
@@ -334,6 +349,8 @@ you can use `posframe-delete-all' to delete all posframes."
:foreground-color foreground-color
:background-color background-color
:keep-ratio keep-ratio
+ :respect-header-line respect-header-line
+ :respect-mode-line respect-mode-line
:override-parameters override-parameters))
;; Insert string to posframe-buffer.
@@ -467,9 +484,11 @@ WIDTH and MIN-WIDTH."
(defun posframe-hide (posframe-buffer)
"Hide posframe which buffer is POSFRAME-BUFFER."
- (with-current-buffer (get-buffer-create posframe-buffer)
- (when (frame-live-p posframe--frame)
- (make-frame-invisible posframe--frame))))
+ (dolist (frame (frame-list))
+ (let ((buffer-info (frame-parameter frame 'posframe-buffer)))
+ (when (or (equal posframe-buffer (car buffer-info))
+ (equal posframe-buffer (cdr buffer-info)))
+ (make-frame-invisible frame)))))
(defun posframe-delete (posframe-buffer)
"Delete posframe which buffer POSFRAME-BUFFER."
@@ -480,13 +499,16 @@ WIDTH and MIN-WIDTH."
"Kill child-frame of posframe.
This posframe's buffer is POSFRAME-BUFFER."
(dolist (frame (frame-list))
- (let ((buffer (frame-parameter frame 'posframe-buffer)))
- (when (equal posframe-buffer buffer)
- (with-current-buffer posframe-buffer
- (dolist (timer '(posframe--refresh-timer
- posframe--timeout-timer))
- (when (timerp timer)
- (cancel-timer timer))))
+ (let ((buffer-info (frame-parameter frame 'posframe-buffer))
+ (buffer (get-buffer posframe-buffer)))
+ (when (or (equal posframe-buffer (car buffer-info))
+ (equal posframe-buffer (cdr buffer-info)))
+ (when buffer
+ (with-current-buffer buffer
+ (dolist (timer '(posframe--refresh-timer
+ posframe--timeout-timer))
+ (when (timerp timer)
+ (cancel-timer timer)))))
(delete-frame frame)))))
(defun posframe--kill-buffer (posframe-buffer)
@@ -498,23 +520,30 @@ This posframe's buffer is POSFRAME-BUFFER."
(defun posframe-hide-all ()
"Hide all posframe's frames."
(interactive)
- (dolist (buffer (buffer-list))
- (with-current-buffer buffer
- (when (frame-live-p posframe--frame)
- (make-frame-invisible posframe--frame)))))
+ (dolist (frame (frame-list))
+ (let ((buffer-info (frame-parameter frame 'posframe-buffer)))
+ (when buffer-info (make-frame-invisible frame)))))
;;;###autoload
(defun posframe-delete-all ()
"Delete all posframe's frames and buffers."
(interactive)
(dolist (frame (frame-list))
- (let ((buffer (frame-parameter frame 'posframe-buffer)))
- (when buffer (delete-frame frame))))
+ (let ((buffer-info (frame-parameter frame 'posframe-buffer)))
+ (when buffer-info (delete-frame frame))))
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when posframe--frame
(posframe--kill-buffer buffer)))))
+(defun posframe-auto-delete ()
+ "Auto delete posframe when its buffer is killed.
+
+This function is used by `kill-buffer-hook'."
+ (posframe--delete-frame (current-buffer)))
+
+(add-hook 'kill-buffer-hook #'posframe-auto-delete)
+
;; Posframe's position handler
(defun posframe-run-poshandler (info)
"Run posframe's position handler.
- [elpa] master updated (da7767a -> eb6623b), Feng Shu, 2018/03/08
- [elpa] master 80e0b89 01/13: * posframe.el (posframe--create-posframe): setq-local left/right-fringe-width to nil, Feng Shu, 2018/03/08
- [elpa] master 90c5514 02/13: posframe: Add posframe-auto-delete, Feng Shu, 2018/03/08
- [elpa] master eb6623b 13/13: Merge commit 'a8c24d676c6e1a47ea4b010633a31571d59f506f',
Feng Shu <=
- [elpa] master 80315af 03/13: posframe: add .gitignore, Feng Shu, 2018/03/08
- [elpa] master 28a475d 07/13: * posframe.el (posframe-hide-all): Simplify code, Feng Shu, 2018/03/08
- [elpa] master 0e088fe 08/13: posframe: buffer -> buffer-info, Feng Shu, 2018/03/08
- [elpa] master a8c24d6 12/13: posframe: version 0.2.0, Feng Shu, 2018/03/08
- [elpa] master 6642ebb 06/13: * posframe.el (posframe-auto-delete): Use posframe--delete-frame, Feng Shu, 2018/03/08
- [elpa] master 1854163 11/13: posframe: recreate posframe when respect-header/mode-line have changed, Feng Shu, 2018/03/08
- [elpa] master 9121b6a 04/13: posframe: posframe parameter: posframe-buffer is a cons now, Feng Shu, 2018/03/08
- [elpa] master d2a9f20 09/13: posframe: deal with killed buffer, Feng Shu, 2018/03/08
- [elpa] master eb13008 05/13: posframe: let posframe-hide work when buffer is killed, Feng Shu, 2018/03/08
- [elpa] master c12bacd 10/13: posframe: support header-line and mode-line, Feng Shu, 2018/03/08