Add screen absolute mouse position to CursorMoved #3071
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.
Add screen-absolute mouse position to CursorMoved event
Problem:
When implementing custom window resize handles, window-relative mouse coordinates become unreliable as the window dimensions change. The position jumps around because it's relative to a moving target.
This is particularly problematic for audio plugins (using nih-plug + baseview) where you can't access native window resize controls and have to implement resize handles yourself.
Solution:
Add
screen_position: Pointtomouse::Event::CursorMovedalongside the existing window-relative position.The screen position stays constant during resize operations, making drag calculations straightforward.
Implementation:
window.outer_position() + cursor_positionconversion::window_event()to accept pre-extractedwindow_positionparameter (consistent with existingscale_factorpattern)Breaking Changes:
CursorMovedhas new field - existing pattern matches need..conversion::window_event()signature changedIt closes #2773 (only issue I could find related to it)
Working Result:
