musescore / musescore/MuseScore

Shift+drag should initiate lasso selection when cursor is within frame

Open
#23,790 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

community P3 UX/interaction
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
  1. Create new score, treble template, default settings
  2. Add some notes to the first measure
  3. Insert a text frame before the first measure
  4. Add a few lines of text
  5. Place mouse cursor within the title frame
  6. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.