musescore / musescore/MuseScore

[UI] Restrict Bottom Panel height to active tab's maximum required content size

Open
#34,933 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Your idea

Implement a dynamic height restriction for the Bottom Panel based on the currently active tab:

  1. Tab-Specific Layout Constraints: Tie the maximum height of the Bottom Panel to the maximum useful height of the active tab's widget. For example, if the Keyboard tab is selected, the panel should lock at the maximum height required for the keyboard.
  2. Dynamic Resizing on Tab Switch: If the user switches to a tab that requires more vertical space (like a fully expanded Mixer), the panel constraint should dynamically change to the new maximum content height.
    Since MuseScore Studio doesn't remember and restore individual Bottom Panel tab sizes at the moment, on tab switch, if the current tab size is larger than the new tab's maximum content height, the tab's size should be set to its panel constraint, as explained above.
Problem to be solved

Currently, the Bottom Panel (housing the Mixer, Keyboard, Properties, etc.) can be resized vertically without any constraints relative to its content.
When a user drags the panel divider upwards while a tab with a fixed height requirement (like the Virtual Keyboard) is active, it creates a significant amount of empty, unutilized space.

This behavior reduces the valuable vertical screen real estate needed for the score notation without providing any functional benefit.

Since MuseScore Studio doesn't remember and restore individual Bottom Panel tab sizes at the moment, this would also drastically enhance the UX due to that issue, espacially on smaller screens.

Steps to reproduce (Current Behavior)
  1. Open the Virtual Keyboard or Properties in the Bottom Panel.
  2. Drag the top border of the Bottom Panel upwards.
  3. Observe that the panel expands indefinitely, leaving a large empty area around the UI elements while shrinking the score view.

https://github.com/user-attachments/assets/bf4a0614-cad6-484c-bffb-753fbd30a40b

Prior art

No response

Additional context

No response

Checklist
  • This request follows the guidelines for reporting issues
  • I have verified that this feature request has not been logged before, by searching the issue tracker for similar requests

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 tracing the Bottom Panel resize handling and active-tab switching for the Mixer, Keyboard, and Properties tabs. Reproduce the oversized panel behavior, identify each tab's useful maximum height, and verify that switching tabs updates the constraint and removes excess empty space without limiting required content.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.