View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0022588 | MMW 5 | Main Panel | public | 2026-11-10 20:11 | 2026-11-10 20:12 |
| Reporter | Ludek | Assigned To | |||
| Priority | urgent | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | 2027.0 | ||||
| Target Version | 2027.0 | Fixed in Version | 2027.0 | ||
| Summary | 0022588: Issues with docking / splitters | ||||
| Description | As found by user from [ticket # 18995] : MediaMonkey's docking system automatically inserts native Splitter controls between multiple panels in the same dock, even when the dock is not a flex container. This can cause incorrect panel resizing because the Splitter assumes a horizontal layout when its parent does not have the CSS class column. For example, a Top or Bottom dock using display: block may contain vertically stacked panels, but the Splitter is still initialized as horizontal. Expected behavior: The docking system should only create Splitters when the parent layout supports them, and the Splitter orientation should match the actual layout. Vertically stacked panels should not have their widths modified by a horizontal Splitter. Technical findings: In helpers/docking.js, a Splitter is inserted whenever the dock contains more than one panel, without checking the parent's layout type. In controls/splitter.js, the orientation is determined by: if (this.parentElement.classList.contains('column')) this.isVertical = true; else this.isVertical = false; Therefore, any non-flex dock without the column class is treated as a horizontal layout. The native Splitter documentation also states that Splitters must be placed inside a flex control, but this requirement is not enforced by the docking system. Possible effects: Unexpected changes to panel widths. Panels temporarily shrinking during startup or layout restoration. Incorrect sizing when switching tabs or changing dock layouts. Additional note: The same underlying issue appears to remain in the latest MediaMonkey 2027 beta source files (helpers/docking.js and controls/splitter.js). Although the newer Splitter implementation includes improvements to size handling, it still creates and initializes horizontal Splitters in non-flex docks. The issue has been reproduced in MM 2024 and MM 2027 (latest beta) | ||||
| Tags | No tags attached. | ||||
| Fixed in build | 3531 | ||||