GNU bug report logs -
#27053
26.0.50; x-show-tip gets wrong mouse position if frame moves w/o mouse moving on macOS
Previous Next
Reported by: Aaron Jensen <aaronjensen <at> gmail.com>
Date: Wed, 24 May 2017 12:33:02 UTC
Severity: normal
Found in version 26.0.50
Done: Alan Third <alan <at> idiocy.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On Thu, May 25, 2017 at 09:01:11AM +0200, martin rudalics wrote:
> > I do not know what the best solution to this is. They could be stored
> > in screen local coordinates and converted to frame local as they're
> > needed, or they could be recalculated/asked for whenever the frame is
> > moved.
>
> Both, X and Windows query the absolute mouse position here and the NS
> code should do the same (just that I don't have any idea what the direct
> NS equivalent for XQueryPointer/GetCursorPos is - it should be somehwere
> hidden in ns_mouse_position's
>
> position = [[view window] mouseLocationOutsideOfEventStream];
> position = [view convertPoint: position fromView: nil];
>
> but I'm too lazy to figure that out). last_mouse_motion_x/_y are
> conceptually reserved for note_mouse_movement and should not be used for
> anything else (IMHO).
Looks like the right way to get it in screen‐coords is
[NSEvent mouseLocation]
which returns an NSPoint.
https://developer.apple.com/reference/appkit/nsevent/1533380-mouselocation?language=objc
Seems strange to me that it’s in NSEvent, but I guess it makes sense
to someone.
Patch attached.
I’ve just noticed the grocer’s apostrophe in the commit message.
*sigh*
It seems to me that the NS port seems to like storing values and then
reusing them later even though they can be asked for directly in
real‐time. I don’t know if that’s a coding style thing or what.
--
Alan Third
[0001-Fix-NS-tooltip-s-showing-in-the-wrong-place-bug-2705.patch (text/plain, attachment)]
This bug report was last modified 8 years ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.