[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#50256: thing-at-mouse
From: |
martin rudalics |
Subject: |
bug#50256: thing-at-mouse |
Date: |
Fri, 3 Sep 2021 09:40:36 +0200 |
> I think we need to special-case the case of the current buffer. But
> I'd still like to talk about the semantics of calling
> pos-visible-in-window-p when WINDOWS is the selected window, but the
> WINDOW's buffer is not the current one. Who "wins" in that case, for
> the purpose of the default value of position: the window or the
> buffer?
If in the manual we say "The argument POSITION defaults to the current
position of point in WINDOW", this means that the window should win.
Whether that's reasonable is another question. Note that a similar
disputable case already happens when we do
(pos-visible-in-window-p nil (next-window) t)
and the next window does not show the current buffer. We there silently
override the "nil" with WINDOW's point. Maybe we should signal an error
in either of these cases when WINDOW's buffer is not the current buffer.
IIUC we use `pos-visible-in-window-p' mainly for three purposes:
(1) Detect whether a buffer position that typically does _not_ equal
window point is visible in window and, if it isn't, do something
(scroll, enlarge the window) to make it visible.
(2) Detect whether window point is only partially visible.
(3) Get the coordinates of window point and move the mouse or pop up a
menu there.
In all these cases, callers simply don't care about which buffer is
current when calling the function - the buffer in question is WINDOW's
buffer.
A different use were to check whether a position of an arbitrary BUFFER
would be visible in a WINDOW if BUFFER were displayed there with the
start of the window set to some valid BUFFER position. I don't know
whether anyone ever used such a functionality. To make it work, a
caller would have to set WINDOW's buffer and start position first, call
`pos-visible-in-window-p' and restore the original state afterwards.
Even in this hypothetical case, the caller wouldn't care about which
buffer is current.
martin
- bug#50256: thing-at-mouse, (continued)
- bug#50256: thing-at-mouse, Lars Ingebrigtsen, 2021/09/02
- bug#50256: thing-at-mouse, Eli Zaretskii, 2021/09/02
- bug#50256: thing-at-mouse, martin rudalics, 2021/09/02
- bug#50256: thing-at-mouse, Eli Zaretskii, 2021/09/02
- bug#50256: thing-at-mouse, martin rudalics, 2021/09/02
- bug#50256: thing-at-mouse, Eli Zaretskii, 2021/09/02
- bug#50256: thing-at-mouse, martin rudalics, 2021/09/02
- bug#50256: thing-at-mouse, Juri Linkov, 2021/09/02
- bug#50256: thing-at-mouse, Juri Linkov, 2021/09/02
- bug#50256: thing-at-mouse, Eli Zaretskii, 2021/09/02
- bug#50256: thing-at-mouse,
martin rudalics <=
- bug#50256: thing-at-mouse, Eli Zaretskii, 2021/09/03
- bug#50256: thing-at-mouse, martin rudalics, 2021/09/04
- bug#50256: thing-at-mouse, Eli Zaretskii, 2021/09/04
- bug#50256: thing-at-mouse, martin rudalics, 2021/09/04
- bug#50256: thing-at-mouse, Eli Zaretskii, 2021/09/04
- bug#50256: thing-at-mouse, Juri Linkov, 2021/09/04
- bug#50256: thing-at-mouse, martin rudalics, 2021/09/05
- bug#50256: thing-at-mouse, martin rudalics, 2021/09/05
- bug#50256: thing-at-mouse, Eli Zaretskii, 2021/09/05
- bug#50256: thing-at-mouse, martin rudalics, 2021/09/05