http://bugs.winehq.org/show_bug.cgi?id=60287 Bug ID: 60287 Summary: GetCursorPos returns a stale position under XWayland/Wayland after the pointer leaves Wine windows Product: Wine Version: 11.16 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@list.winehq.org Reporter: wszqkzqk@qq.com Target Milestone: --- Distribution: --- Created attachment 82028 --> http://bugs.winehq.org/attachment.cgi?id=82028 minimal reproducer In a Wayland session, GetCursorPos() continues returning a stale position inside the window after the cursor leaves all Wine windows and moves onto a native Wayland surface. This directly affects applications that poll GetCursorPos() and WindowFromPoint() to detect mouse movement. For example, Plants vs. Zombies uses a polling loop to handle cursor transitions. On Windows, it detects the cursor leaving within about 20ms, but under Wine/XWayland, it never detects the leave. Wayland does not expose pointer coordinates once it leaves the surface and enters a foreign window. I've created a minimal reproducer. To compile, run: ``` x86_64-w64-mingw32-gcc -mwindows -o cursor_poll.exe cursor_poll.c ``` Run it in a Wayland session, and move the pointer out of the window at normal speed. The status text should flip to OUTSIDE immediately, as on Windows. But it stays INSIDE with a frozen position. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.