From: Juri Linkov <juri@linkov.net>
To: martin rudalics <rudalics@gmx.at>
Cc: Lars Ingebrigtsen <larsi@gnus.org>, 47300@debbugs.gnu.org
Subject: bug#47300: delete-window to select window with same position
Date: Sun, 06 Jun 2021 23:47:56 +0300 [thread overview]
Message-ID: <87zgw2lnyb.fsf@mail.linkov.net> (raw)
In-Reply-To: <3c111515-d877-06fd-6291-09e624dba97c@gmx.at> (martin rudalics's message of "Sun, 6 Jun 2021 09:43:47 +0200")
>>> In general, just plugging in some existing function would usually fail
>>> here and I would like to avoid the illusion that it could work. Also,
>>> as you can see with the 'pos' case, some work must be done _before_
>>> calling `delete-window-internal' so the actual work would have to be
>>> split among two functions at least.
>>
>> The 'pos' case is an exception. What I meant is simple cases
>> like customizing to 'get-lru-window'.
>
> That one would have to handle the 'no-other-window' parameter. And we
> would have to mix functions and constants as customizable values which
> looks queer in the customization interface.
The customization interface could use only functions that could be
first called before deletion, then the customized function returns
a lambda that will be called after deletion. Then for example
all 'pos' logic could be moved to a separate function:
(defun delete-window-pos ()
(let ((frame-selected-window-edges (window-edges frame-selected-window nil nil t))
(frame-selected-window-pos (nth 2 (posn-at-point nil frame-selected-window))))
(lambda ()
(let ((new-frame-selected-window
(window-at-pos
(+ (nth 0 frame-selected-window-edges)
(car frame-selected-window-pos))
(+ (nth 1 frame-selected-window-edges)
(cdr frame-selected-window-pos))
frame t)))
(and new-frame-selected-window
;; Select window at WINDOW's position at point.
(set-frame-selected-window
frame new-frame-selected-window))))))
next prev parent reply other threads:[~2021-06-06 20:47 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-21 20:31 bug#47300: delete-window to select window with same position Juri Linkov
2021-05-18 14:49 ` Lars Ingebrigtsen
2021-05-18 16:00 ` martin rudalics
2021-05-18 20:17 ` Juri Linkov
2021-05-19 7:42 ` martin rudalics
2021-05-19 16:07 ` Juri Linkov
2021-05-19 17:41 ` martin rudalics
2021-05-22 8:05 ` martin rudalics
2021-05-22 21:25 ` Juri Linkov
2021-05-23 8:43 ` martin rudalics
2021-05-25 6:50 ` martin rudalics
2021-05-26 21:29 ` Juri Linkov
2021-05-27 15:20 ` martin rudalics
2021-05-31 20:46 ` Juri Linkov
2021-06-02 9:08 ` martin rudalics
2021-06-03 21:20 ` Juri Linkov
2021-06-04 9:19 ` martin rudalics
2021-06-04 16:29 ` Juri Linkov
2021-06-06 7:43 ` martin rudalics
2021-06-06 20:47 ` Juri Linkov [this message]
2021-06-07 7:35 ` martin rudalics
2021-06-07 21:00 ` Juri Linkov
2021-06-10 7:44 ` martin rudalics
2021-06-11 17:06 ` Juri Linkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zgw2lnyb.fsf@mail.linkov.net \
--to=juri@linkov.net \
--cc=47300@debbugs.gnu.org \
--cc=larsi@gnus.org \
--cc=rudalics@gmx.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.