mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-09-25 07:23:57 +00:00
[client] input: stop absolute cursor feedback
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
X11's legacy guest-position synchronization warps the host cursor to delayed guest updates. With absolute input this feeds old positions back through cooked motion and pulls the cursor away from window edges. Skip display-server guest synchronization when the active input is absolute. Relative input and explicit uncapture alignment are unchanged.
This commit is contained in:
@@ -642,6 +642,11 @@ void core_stopFrameThread(void)
|
||||
|
||||
void core_handleGuestMouseUpdate(void)
|
||||
{
|
||||
/* The local cursor is authoritative with absolute input. Sending delayed
|
||||
* guest positions back to the display server creates a warp feedback loop. */
|
||||
if (lgInput_supports(LG_INPUT_SUPPORT_MOUSE_ABSOLUTE))
|
||||
return;
|
||||
|
||||
struct DoublePoint localPos;
|
||||
if (!util_guestCurToLocal(&localPos))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user