Add the ability to dock windows
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
_I found [this](https://github.com/LMMS/lmms/issues/1911), but my proposal is a little less radical._
### Enhancement Summary
#### Justification
I will use the following configuration as an example:

When using multi-window mode, I experience the following inconveniences:
- windows are lost when switching due to overlapping;

- scroll bars appear when the main window is resized or the sidebar is opened.

However, when one of the windows is maximized, it works correctly: the content stretches and shrinks depending on the available space, extra scrollbars do not appear.


I propose adding the ability to dock some windows (Song-Editor, Beat+Bassline Editor, Piano-Roll, Automation Editor, FX-Mixer and Project Notes) in the background so that other windows cannot hide behind them. Also, when resizing the main window, docked windows are scaled accordingly.
Docked windows are tiled and have no window titles. See mockup below. The tiles can be resized manually, just like in other programs.
Other windows should work as before. For convenience, we can add the "Close all windows except docks" keyboard shortcut.
#### Mockup




In addition, we can add presets for layouts (several options for the location of tiles, between which you can switch), as in some video editors.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the existing multi-window behavior and the related issue #1911, then compare it with the supplied mockups. The change would need to cover docking Song-Editor, Beat+Bassline Editor, Piano-Roll, Automation Editor, FX-Mixer, and Project Notes, including tiled resizing while preserving other windows' behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100