unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>, Juri Linkov <juri@linkov.net>
Cc: 50256@debbugs.gnu.org, larsi@gnus.org
Subject: bug#50256: thing-at-mouse
Date: Fri, 3 Sep 2021 09:40:36 +0200	[thread overview]
Message-ID: <bc910b9b-dbfc-b797-fe2f-8129d8f3c942@gmx.at> (raw)
In-Reply-To: <83czpqzupp.fsf@gnu.org>

 > 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






  reply	other threads:[~2021-09-03  7:40 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-29 17:21 bug#50256: thing-at-mouse Juri Linkov
2021-08-29 20:03 ` Lars Ingebrigtsen
2021-08-30  7:20   ` Juri Linkov
2021-08-31  0:04     ` Lars Ingebrigtsen
2021-08-31  6:49       ` Juri Linkov
2021-08-31 17:52         ` Juri Linkov
2021-09-01  7:17           ` Juri Linkov
2021-09-01  7:43             ` Lars Ingebrigtsen
2021-09-01  9:18             ` martin rudalics
2021-09-01 12:16               ` Eli Zaretskii
2021-09-01 14:25                 ` martin rudalics
2021-09-01 15:59                   ` Eli Zaretskii
2021-09-01 16:21                     ` martin rudalics
2021-09-01 17:54                       ` Eli Zaretskii
2021-09-01 17:59                         ` Juri Linkov
2021-09-01 19:23                           ` Eli Zaretskii
2021-09-02  6:16                             ` Juri Linkov
2021-09-02  7:21                               ` Eli Zaretskii
2021-09-02  7:23                               ` Lars Ingebrigtsen
2021-09-02  7:34                                 ` Eli Zaretskii
2021-09-02  6:48                         ` martin rudalics
2021-09-02  7:30                           ` Eli Zaretskii
2021-09-02  7:32                             ` Lars Ingebrigtsen
2021-09-02  7:46                               ` Eli Zaretskii
2021-09-02  8:54                                 ` martin rudalics
2021-09-02  9:02                                   ` Eli Zaretskii
2021-09-02 12:42                                     ` martin rudalics
2021-09-02 13:13                                       ` Eli Zaretskii
2021-09-02 14:43                                         ` martin rudalics
2021-09-02 15:58                                           ` Juri Linkov
2021-09-02 18:28                                             ` Juri Linkov
2021-09-02 18:41                                               ` Eli Zaretskii
2021-09-03  7:40                                                 ` martin rudalics [this message]
2021-09-03 11:06                                                   ` Eli Zaretskii
2021-09-04  7:34                                                     ` martin rudalics
2021-09-04  8:02                                                       ` Eli Zaretskii
2021-09-04 11:10                                                         ` martin rudalics
2021-09-04 11:35                                                           ` Eli Zaretskii
2021-09-04 18:58                                                             ` Juri Linkov
2021-09-05  7:50                                                               ` martin rudalics
2021-09-05  7:50                                                             ` martin rudalics
2021-09-05  9:24                                                               ` Eli Zaretskii
2021-09-05  9:39                                                                 ` martin rudalics
2021-09-05  9:42                                                                   ` Eli Zaretskii
2021-09-06  8:31                                                                     ` martin rudalics
2021-09-05 16:13                                                               ` Juri Linkov
2021-09-05 16:47                                                                 ` Eli Zaretskii
2021-09-06  8:31                                                                   ` martin rudalics
2021-09-06 10:57                                                                     ` Eli Zaretskii
2021-09-06 14:08                                                                       ` martin rudalics
2021-09-06 15:43                                                                         ` Eli Zaretskii
2021-09-06 15:10                                                                       ` Juri Linkov
2021-09-12 16:32                                                                   ` Juri Linkov
2021-09-02 18:46                                               ` martin rudalics
2021-09-03  8:10                                                 ` Juri Linkov
2021-09-02 15:59                                           ` Eli Zaretskii
2021-09-01 15:42               ` Juri Linkov
2021-09-01 19:26                 ` Eli Zaretskii
2021-09-01 12:02             ` Eli Zaretskii
2021-09-01 15:44               ` Juri Linkov
2021-09-01 16:12                 ` Eli Zaretskii
2021-09-01 16:25                   ` Juri Linkov
2021-09-12 17:12         ` Juri Linkov
2021-09-12 17:32       ` 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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bc910b9b-dbfc-b797-fe2f-8129d8f3c942@gmx.at \
    --to=rudalics@gmx.at \
    --cc=50256@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=juri@linkov.net \
    --cc=larsi@gnus.org \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).