Compare commits

...

4 Commits

Author SHA1 Message Date
8c396a11f5 Don’t err in pip-frame-remove-buffer if there is no PIP frame
This is useful e.g. to prevent the error when a PIP frame with a
temporarily displayed buffer is deleted before the buffer timer
attempts to remove the buffer.
2022-08-02 21:14:04 +02:00
e8b16420f8 README: Add installation section 2022-07-26 20:07:08 +02:00
7a75e73f88 Silence checkdoc messages about docstrings of internal objects
Internal objects here don’t have and shouldn’t have documentation
strings because:

- There is nothing useful to specify in them.
- They are not a stable API to be used.
- They would pollute the source file and make it larger.
2022-07-06 10:10:46 +02:00
3e37e3ad0c Move Code: label before the beginning of code
From the place where it was inserted by checkdoc.
2022-07-05 13:23:23 +02:00
2 changed files with 35 additions and 10 deletions

View File

@ -43,6 +43,26 @@ this utility:
* How?
** Installation
You can install pip-frame.el from [[https://melpa.org/#/pip-frame][MELPA]]. If you use [[https://github.com/radian-software/straight.el][straight.el]] and
prefer using source repos directly, you can install pip-frame.el as
follows:
#+begin_src elisp
(straight-use-package
'(pip-frame :type git
:repo "https://git.zamazal.org/pdm/pip-frame"
:local-repo "pip-frame"))
#+end_src
For manual installation, simply put [[./pip-frame.el][pip-frame.el]] file to your
=site-lisp= directory and add the following to your Emacs configuration:
#+begin_src elisp
(require pip-frame)
#+end_src
** Commands
The PIP frame is created using =M-x pip-frame-add-buffer= command. You

View File

@ -33,10 +33,10 @@
;; `M-x pip-frame-remove-buffer' or close the whole frame with
;; `M-x pip-frame-delete-frame'.
(require 'cl-lib)
;;; Code:
(require 'cl-lib)
(defgroup pip-frame ()
"Display PIP frame."
:group 'frames)
@ -175,14 +175,15 @@ If the buffer is not present in the PIP frame, do nothing."
(interactive (list (completing-read "Remove PIP buffer: "
(mapcar #'buffer-name (pip-frame--buffers))
nil t)))
(let* ((windows (window-list (pip-frame--get-frame)))
(buffer (get-buffer buffer-or-name))
(windows-to-delete (cl-remove buffer windows
:key #'window-buffer
:test-not #'eq)))
(if (= (length windows-to-delete) (length windows))
(pip-frame-delete-frame)
(seq-do #'delete-window windows-to-delete))))
(if-let ((frame (pip-frame--get-frame t))
(windows (window-list frame))
(buffer (get-buffer buffer-or-name))
(windows-to-delete (cl-remove buffer windows
:key #'window-buffer
:test-not #'eq)))
(if (= (length windows-to-delete) (length windows))
(pip-frame-delete-frame)
(seq-do #'delete-window windows-to-delete))))
(defun pip-frame--move (x y)
(let ((frame (pip-frame--get-frame)))
@ -233,4 +234,8 @@ Any other key stops this command and executes its own command."
(provide 'pip-frame)
;; Local Variables:
;; checkdoc-force-docstrings-flag: nil
;; End:
;;; pip-frame.el ends here