Mouse capture release: always put the cursor at the centre of the viewer window, from every capture source #871
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#871
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
When the viewer stops capturing / hiding the mouse, the cursor should reappear at the centre of the viewer window, consistently, whatever started the capture. Today each capture source restores the cursor its own way (to the press point, to wherever the OS left it, or not at all), so the cursor turns up in different places.
Capture sources to cover (audit -- all call sites that hide / warp / restore the cursor)
llagentcamera.cpp,lltoolgun.cpp,llviewermenu.cpp).lltoolpie.cppendRightOrbit()): changes the current "return to the press point" behaviour to centre.sltpscamera.cpp).lltoolfocus.cpp).lltoolgrab.cpp).slmmbnav.cpp).hideCursor/showCursor/setCursorPosition/moveCursorToCenterusers (llviewerwindow.cpp,lltoolmgr.cpp,lltoolcomp.cpp,llagent.cpp, RLV). Map / minimap / preview-floater drags are panning inside a widget and are probably out of scope; decide per site and note it.Implementation
LLViewerWindow) that every release path calls: show the cursor and warp it to the window centre. Remove per-site restore logic instead of layering on it.MouseReleaseToCenter, Boolean, default on) -- decide during implementation; default is centre.Acceptance