Skip to content

Pan the canvas and preview with the middle mouse button - #14

Merged
txp666 merged 1 commit into
mainfrom
middle-pan
Nov 9, 2026
Merged

txp666 merged 1 commit into
mainfrom
middle-pan

Conversation

@txp666

@txp666 txp666 commented Nov 9, 2026

Copy link
Copy Markdown
Owner

Hold the middle mouse button anywhere on the design canvas — empty area or on top of a widget, selected or not — and drag: the content follows the mouse 1:1 at any zoom, with a closed-hand cursor. Nothing is selected, moved or resized, and the click never reaches a widget. A middle press during a left drag does not start a pan. When the canvas fits in the view there is nothing to scroll.

The same behaviour lands in FluentHMI Studio, PyQt UI Designer and the web editor on modusignal.cn.

  • DesignView (app/designer/canvas.py) takes the middle press before the scene; MiddlePan drives the scroll bars.
  • The run preview scrolls too, so its scroll area gets ScrollAreaMiddlePan, an event filter that keeps middle clicks away from the live widgets (no X11 paste into line edits).

Tested: offscreen drags on empty canvas, a selected LineEdit and an unselected PushButton, and on the preview scroll area; python -m unittest discover -s tests 234 OK; tried by hand.

🤖 Generated with Claude Code

DesignView takes the middle press before the scene, so items are never
selected, moved or resized; the preview's scroll area gets the same pan through
an event filter that keeps the middle click away from live widgets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@txp666
txp666 merged commit 110e60c into main Nov 9, 2026
6 checks passed
@txp666
txp666 deleted the middle-pan branch November 9, 2026 06:58
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.

1 participant