From b8579b0dfcecc7fd88d807f1550bcb6a5103f070 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Mon, 24 Apr 2023 06:49:06 -0400 Subject: Disable popup buffer handling --- emacs/.config/emacs-kj/lisp/kj-popup.el | 61 ++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 23 deletions(-) (limited to 'emacs/.config') diff --git a/emacs/.config/emacs-kj/lisp/kj-popup.el b/emacs/.config/emacs-kj/lisp/kj-popup.el index af448f3..0ac99a5 100644 --- a/emacs/.config/emacs-kj/lisp/kj-popup.el +++ b/emacs/.config/emacs-kj/lisp/kj-popup.el @@ -1,10 +1,12 @@ ;;; -*- lexical-binding: t; -*- -(global-set-key (kbd "C-`") #'window-toggle-side-windows) -(global-set-key (kbd "M-`") #'kj/popup-toggle-override) -(setq window-sides-slots '(0 0 2 2)) ; 2 right side windows +;;; Window placement +;;; TODO: Test popper.el. +;; (global-set-key (kbd "C-`") #'window-toggle-side-windows) +;; (global-set-key (kbd "M-`") #'kj/popup-toggle-override) +;; (setq window-sides-slots '(0 0 2 2)) ; 2 right side windows (setq switch-to-buffer-obey-display-actions t) (setq switch-to-buffer-in-dedicated-window 'pop) - +(setq even-window-sizes 'width-only) (defvar kj/popup-override nil) (defun kj/popup-clear-overrides () @@ -55,26 +57,39 @@ kj/popup-override (kj/popup-buffer-base buffer condition)))) -(setq transient-display-buffer-action - '(display-buffer-in-best-side - (slot . -1) - (inhibit-same-window . t) - (window-parameters - (no-other-window . t)))) +;; (setq transient-display-buffer-action +;; '(display-buffer-in-best-side +;; (slot . -1) +;; (inhibit-same-window . t) +;; (window-parameters +;; (no-other-window . t)))) + +(defun kj/display-new-popup (buffer alist) + (let ((popup-window + (display-buffer-in-direction + buffer + (append (if (> (frame-width) 160) + '((direction . rightmost) + (window-width . 80)) + '((direction . bottom))))))) + (set-window-parameter popup-window 'kj/popup t) + popup-window)) + +(defun kj/find-popup-window () + (seq-find + (lambda (w) + (window-parameter w 'kj/popup)) + (window-list))) -(defun display-buffer-in-best-side (buffer alist) - (display-buffer-in-side-window - buffer - (append (if (> (frame-width) 160) - '((side . right) - (window-width . 85)) - '((side . bottom) - (window-height . 0.5))) - alist))) +(defun display-popup-buffer (buffer alist) + (let ((window (kj/find-popup-window))) + (if window + (window--display-buffer buffer window 'reuse alist) + (kj/display-new-popup buffer alist)))) -(add-to-list 'display-buffer-alist - `(kj/popup-buffer - (display-buffer-in-best-side) - (slot . 0))) +;; (add-to-list 'display-buffer-alist +;; `(kj/popup-buffer +;; (display-popup-buffer) +;; (slot . 0))) (provide 'kj-popup) -- cgit v1.2.3