Skip to content

Controls overlap in video quick settings panel #3790

@low-batt

Description

@low-batt

System and IINA version:

  • macOS 12.4
  • IINA 1.3.0

Expected behavior:
UI controls do not overlap.

Actual behavior:
In the video quick settings panel controls under "Aspect Ratio" and "Crop" overlap and are truncated:

video-quick-settings

Because of that problem I did not recognize the blank blob at the end of the list of aspect ratios as a text field that can be used to enter a custom ratio. Due to the overlapping I thought it was some sort of broken button. One way to make it obvious what this grey blob is would be to populate that field with the current value like is done in the "Speed" setting. If the text field is moved to a following line to correct the overlap, then a "Custom:" label can be added before it.

Note that when run under Xcode the QuickSettingView triggers constraint errors:

2022-06-04 16:46:21.727556-0400 IINA[49559:2719443] [Layout] Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x6000013ed8b0 H:[NSView:0x15c828280]-(0)-|   (active, names: '|':IINA.FlippedView:0x15c828040 )>",
    "<NSLayoutConstraint:0x6000013ed720 H:|-(0)-[NSView:0x15c828280]   (active, names: '|':IINA.FlippedView:0x15c828040 )>",
    "<NSLayoutConstraint:0x6000013ed6d0 H:[IINA.FlippedView:0x15c828040]-(0)-|   (active, names: '|':NSClipView:0x15c82b4e0 )>",
    "<NSLayoutConstraint:0x6000013ed630 H:|-(0)-[IINA.FlippedView:0x15c828040]   (active, names: '|':NSClipView:0x15c82b4e0 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x6000013f8e60 h=-&- v=-&- NSClipView:0x15c82b4e0.minX == 0   (active, names: '|':NSScrollView:0x15c0ed000 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x6000013f9220 h=-&- v=-&- NSView:0x15c82af70.minX == 0   (active, names: '|':NSTabView:0x15c82a890 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x6000013f9270 h=-&- v=-&- H:[NSView:0x15c82af70]-(0)-|   (active, names: '|':NSTabView:0x15c82a890 )>",
    "<NSLayoutConstraint:0x6000013ed680 H:|-(0)-[NSScrollView:0x15c0ed000]   (active, names: '|':NSView:0x15c82af70 )>",
    "<NSLayoutConstraint:0x6000013ed4f0 H:[NSScrollView:0x15c0ed000]-(0)-|   (active, names: '|':NSView:0x15c82af70 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x6000013f8eb0 h=-&- v=-&- H:[NSClipView:0x15c82b4e0]-(15)-|   (active, names: '|':NSScrollView:0x15c0ed000 )>",
    "<NSLayoutConstraint:0x6000013e57c0 H:|-(21)-[NSSlider:0x12af5bf60]   (active, names: '|':NSView:0x15c828280 )>",
    "<NSLayoutConstraint:0x6000013e5db0 H:[NSTextField:0x12af50cf0]-(24)-|   (active, names: '|':NSView:0x15c828280 )>",
    "<NSLayoutConstraint:0x600001317e80 NSSlider:0x12af5bf60.width == 236   (active)>",
    "<NSLayoutConstraint:0x6000013e5bd0 H:[NSSlider:0x12af5bf60]-(10)-[NSTextField:0x12af509b0]   (active)>",
    "<NSLayoutConstraint:0x600001317bb0 NSTextField:0x12af509b0.width >= 57   (active)>",
    "<NSLayoutConstraint:0x6000013e5d60 H:[NSTextField:0x12af509b0]-(5)-[NSTextField:0x12af50cf0]   (active)>",
    "<NSLayoutConstraint:0x6000013fd270 H:[NSTabView:0x15c82a890]-(0)-|   (active, names: '|':IINA.QuickSettingView:0x15c829630 )>",
    "<NSLayoutConstraint:0x6000013fd360 H:|-(0)-[NSTabView:0x15c82a890]   (active, names: '|':IINA.QuickSettingView:0x15c829630 )>",
    "<NSLayoutConstraint:0x6000013fd040 IINA.QuickSettingView:0x15c829630.width == 360   (active)>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600001317bb0 NSTextField:0x12af509b0.width >= 57   (active)>

Set the NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have -[NSWindow visualizeConstraints:] automatically called when this happens.  And/or, set a symbolic breakpoint on LAYOUT_CONSTRAINTS_NOT_SATISFIABLE to catch this in the debugger.

Steps to reproduce:
Open the video quick settings panel.

  • MPV does not have this problem.

How often does this happen?
Everytime.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions