Subject: bug#66655: 29.1; Clicking buttons sometimes doesn't work

From: Eli Zaretskii <[email-masked]>
Date: Wed, 25 Oct 2023 21:29:55 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Wed, 25 Oct 2023 13:27:31 -0400
> 
> > But then we are back at the problem which the buffer-position check
> > tries to address:
> >
> >                        /* Maybe the mouse has moved a lot, caused scrolling, and
> >                           eventually ended up at the same screen position (but
> >                           not buffer position) in which case it is a drag, not
> >                           a click.  */
> >
> > IOW, just testing the screen coordinates is not enough.
> 
> In my "in short is approximately" I used `mouse_has_moved` but that
> was an oversimplification: in the new code `mouse_has_moved` doesn't
> revert to "false" when the mouse returns to the original position,
> contrary to what happen in the current code.

How exactly does that happen?

> The comment above talks about buffer positions (i.e. the Fcar+Fcdr
> part of the positions), whereas this `EQ` tests the windows, and the
> only relevant comment I see is
> 
>     /* Different window */
> 
> which reminds the reader that it's comparing windows but doesn't say why.
> Did I miss something?

Yes: we can be at the same buffer position, but a different window.