musescore / musescore/MuseScore
Shift+drag should initiate lasso selection when cursor is within frame
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 15.1k
- Forks
- 3.3k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 91
Description
Issue type
UX/Interaction bug (incorrect behaviour)
Description with steps to reproduce
- Create new score, treble template, default settings
- Add some notes to the first measure
- Insert a text frame before the first measure
- Add a few lines of text
- Place mouse cursor within the title frame
- Shift+drag to select the contents of the first measure
Result: canvas is dragged
Dragging the canvas is expected without Shift, so it appears the Shift is being ignored due to the start point being within a frame rather than a truly empty area. But for all practical purposes, the interior of a frame is empty space, so I would expect Shift+drag to initiate a lasso selection.
In some cases, apparently adding Ctrl somehow worked to initiate selection, even though Ctrl+Shift+drag is supposed to start a clone operation. In 4.3.2 (and in earlier releases), adding Ctrl causes a crash when starting within a text frame. After merging #23789, the crash will be fixed, but then I expect Ctrl+Shift+drag to do what Shift+drag does, and I expect Shift+drag to select. I expect that in all frame types.
See https://github.com/musescore/MuseScore/issues/23318#issuecomment-2253458642 for context.
Supporting files, videos and screenshots
Screen recording 2024-07-26 5.28.20 PM.webm
What is the latest version of MuseScore Studio where this issue is present?
4.3.2
Regression
No.
Operating system
Debian 12
Additional context
No response
Checklist
- This report follows the guidelines for reporting bugs and issues
- I have verified that this issue has not been logged before, by searching the issue tracker for similar issues
- I have attached all requested files and information to this report
- I have attempted to identify the root problem as concisely as possible, and have used minimal reproducible examples where possible
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the Shift+drag behavior from within a text frame, then trace the desktop canvas input handling and frame hit-testing involved in that gesture. Done means Shift+drag starts lasso selection from every frame type, ordinary dragging still moves the canvas, and Ctrl+Shift+drag retains its intended clone behavior without a crash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100