Skip to content

zoom: implement locked pointer - #3130

Open
ammen99 wants to merge 2 commits into
masterfrom
zoom-locked-pointer
Open

ammen99 wants to merge 2 commits into
masterfrom
zoom-locked-pointer

Conversation

@ammen99

@ammen99 ammen99 commented Sep 10, 2026

Copy link
Copy Markdown
Member
  • zoom: add locked mode
  • render-manager: pass sw cursors through post processing

This PR changes the way core handles cursors and post-processing effects: cursors are now passed in through post-processing. This fixes #1380

Also, I asked GPT to implement alternative zoom modes:

[zoom]
mode = locked # follow (default, old behavior) or edge

This fixes #2095 and fixes #3027

Supersedes #3121

Also disable HW cursors when post processing is active, to make sure
everything is unified.
@ammen99

ammen99 commented Sep 10, 2026

Copy link
Copy Markdown
Member Author

@vdegenne @soreau check this out

@soreau

soreau commented Sep 10, 2026

Copy link
Copy Markdown
Member
  • zoom: add locked mode
  • render-manager: pass sw cursors through post processing

This PR changes the way core handles cursors and post-processing effects: cursors are now passed in through post-processing. This fixes #1380

Sounds good..

Also, I asked GPT to implement alternative zoom modes:

..but I disagree with this. The way I see the flow is that you zoom in 'normally', position the zoom area where you want it, then use a keybinding/activator to lock/unlock the zoom area. Then when unlocked, the zoomed area animates back to wherever the cursor is. This way, you don't have to modify the config to do what you want, you can lock/unlock on the fly.

@ammen99

ammen99 commented Sep 10, 2026

Copy link
Copy Markdown
Member Author
  • zoom: add locked mode
  • render-manager: pass sw cursors through post processing

This PR changes the way core handles cursors and post-processing effects: cursors are now passed in through post-processing. This fixes #1380

Sounds good..

Also, I asked GPT to implement alternative zoom modes:

..but I disagree with this. The way I see the flow is that you zoom in 'normally', position the zoom area where you want it, then use a keybinding/activator to lock/unlock the zoom area. Then when unlocked, the zoomed area animates back to wherever the cursor is. This way, you don't have to modify the config to do what you want, you can lock/unlock on the fly.

feel free to implement whatever on top of this, the "hard" part are the core changes

@soreau

soreau commented Sep 10, 2026

Copy link
Copy Markdown
Member

feel free to implement whatever on top of this, the "hard" part are the core changes

Yes, I would rather the 'fine tuning' be left to either @vdegenne or me.

The only thing is, CI is not happy. Can you back out the zoom patch and fix CI?

@vdegenne

vdegenne commented Sep 11, 2026

Copy link
Copy Markdown

I agree, this PR should have been only the core change.
And we can keep the PR I opened to focus on the zoom plugin minimal changes, which with the patch @soreau proposed would give the plugin a much better UX than what ChatGPT suggested.

It should behave like this:

  • The zoom initially has the current behavior (follows the pointer, "free" mode?)
  • We make so the "lock" mode is togglable/customizable from the config (currently hardcoded to <modifier>+L in the patch, but a better default IMO would be <modifier>+middle mouse click, it feels more natural to click to "place the anchor" after zooming with the same wheel, and that means we don't have to move right hand mouse->keyboard->mouse.)
  • Ideally, when we zoom out and go back to normal the mode should toggle back to "free" mode so next time we zoom again we are not locked from the previous anchor point.

@soreau

soreau commented Sep 11, 2026

Copy link
Copy Markdown
Member

I notice the cursor bleeds until it is moved, i.e. it keeps rendering each frame without damage, so the cursor gets surrounded with a progressively darkening blackness.

@soreau

soreau commented Sep 12, 2026

Copy link
Copy Markdown
Member

I managed to fix the tests here but the software cursor still apparently renders without damage, causing the symptom described above.

@soreau

soreau commented Sep 12, 2026

Copy link
Copy Markdown
Member

I have fixed the bleeding cursor issue here. Please let me know what you think.

@vdegenne

Copy link
Copy Markdown

I have fixed the bleeding cursor issue here. Please let me know what you think.

So it was the zoom! It works great, Thanks.

soreau added a commit that referenced this pull request Sep 19, 2026
Co-authored-by: Ilia Bozhinov <ammen99@gmail.com>
Co-authored-by: Valentin Degenne <vdegenne@gmail.com>

Fixes #2095.
Fixes #3027.
Supersedes #3121.
Supersedes #3130.
soreau added a commit that referenced this pull request Sep 19, 2026
Co-authored-by: Ilia Bozhinov <ammen99@gmail.com>
Co-authored-by: Valentin Degenne <vdegenne@gmail.com>

Fixes #2095.
Fixes #3027.
Supersedes #3121.
Supersedes #3130.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feature request] Locking the zoom Cursor always in the middle in zoom mode Zoom in, mouse shrinks.

3 participants