Fix: ignore *pass-on* counters when detecting left-button grabs from llTakeControl
#3990
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A script that takes CONTROL_ML_LBUTTON with pass_on = TRUE should not prevent the viewer from normal clicking in mouse look, yet in practice it does:
This happens because
LLAgent::leftButtonGrabbed()
treats “pass-on” requests as a full grab, unlike the other…Grabbed()
helpers.ref: Wiki: llTakeControls
Solution
Remove the two
mControlsTakenPassedOnCount
checks; the function now tests only the real grab counters, exactly likerotateGrabbed()
,upGrabbed()
, etc.Testing
Before this patch you cannot click doors, HUDs, etc.
After this patch clicks work normally.
Note
I only tested this change on Firestorm as building LL viewer on Linux is not straight forward, but this issue is also present in LL viewer and the code is exactly the same, here is the corresponding PR on FS side: FS PR #113