mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 00:57:22 +01:00
fix: emacs popup frames resizing other windows
This commit is contained in:
parent
91334e26a5
commit
5440fd2c8a
3 changed files with 100 additions and 53 deletions
|
|
@ -1712,7 +1712,7 @@ create a new one."
|
|||
|
||||
(defun prot-window-delete-popup-frame (&rest _)
|
||||
"Kill selected selected frame if it has parameter `prot-window-popup-frame'.
|
||||
Use this function via a hook."
|
||||
Use this function via a hook."
|
||||
(when (frame-parameter nil 'prot-window-popup-frame)
|
||||
(delete-frame)))
|
||||
|
||||
|
|
@ -1723,27 +1723,36 @@ Make the new frame have the `prot-window-popup-frame' parameter."
|
|||
,(format "Run `%s' in a popup frame with `prot-window-popup-frame' parameter.
|
||||
Also see `prot-window-delete-popup-frame'." command)
|
||||
(interactive)
|
||||
(let ((frame (make-frame '((prot-window-popup-frame . t)))))
|
||||
(select-frame frame)
|
||||
(modify-frame-parameters nil '((title . "Emacs Popup Frame")))
|
||||
(switch-to-buffer " prot-window-hidden-buffer-for-popup-frame")
|
||||
(condition-case nil
|
||||
(call-interactively ',command)
|
||||
((quit error user-error)
|
||||
(delete-frame frame))))))
|
||||
(let ((frame (make-frame '((prot-window-popup-frame . t)
|
||||
(title . "Emacs Popup Frame")))))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(select-frame frame)
|
||||
(switch-to-buffer " prot-window-hidden-buffer-for-popup-frame")
|
||||
(condition-case nil
|
||||
(call-interactively ',command)
|
||||
((quit error user-error)
|
||||
(delete-frame frame))))
|
||||
(dolist (fr (frame-list))
|
||||
(when (string= (frame-parameter fr 'name) "Emacs Popup Anchor")
|
||||
(delete-frame fr)))))))
|
||||
|
||||
(declare-function org-capture "org-capture" (&optional goto keys))
|
||||
(defvar org-capture-after-finalize-hook)
|
||||
;;;###autoload (autoload 'prot-window-popup-org-capture "prot-window")
|
||||
;;;###autoload (autoload 'prot-window-popup-org-capture "prot-window")
|
||||
(prot-window-define-with-popup-frame org-capture)
|
||||
(add-hook 'org-capture-after-finalize-hook #'prot-window-delete-popup-frame)
|
||||
|
||||
(declare-function mu4e "mu4e" (&optional goto keys))
|
||||
;;;###autoload (autoload 'prot-window-popup-mu4e "prot-window")
|
||||
;;;###autoload (autoload 'prot-window-popup-mu4e "prot-window")
|
||||
(prot-window-define-with-popup-frame mu4e)
|
||||
(advice-add 'mu4e-quit :after #'prot-window-delete-popup-frame)
|
||||
|
||||
(declare-function swarsel/open-calendar "swarsel/open-calendar" (&optional goto keys))
|
||||
;;;###autoload (autoload 'prot-window-popup-swarsel/open-calendar "prot-window")
|
||||
;;;###autoload (autoload 'prot-window-popup-swarsel/open-calendar "prot-window")
|
||||
(prot-window-define-with-popup-frame swarsel/open-calendar)
|
||||
(advice-add 'bury-buffer :after #'prot-window-delete-popup-frame)
|
||||
|
||||
(declare-function org-agenda "org-agenda" (&optional goto keys))
|
||||
;;;###autoload (autoload 'prot-window-popup-org-agenda "prot-window")
|
||||
(prot-window-define-with-popup-frame org-agenda)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue