ViennaRSS / vienna-rss

Vienna is a free and open-source RSS/Atom newsreader for macOS.
https://www.vienna-rss.com
Apache License 2.0
1.84k stars 228 forks source link

Autolayout issue with new browser and enclosure view #1618

Closed Eitot closed 1 month ago

Eitot commented 2 years ago

To reproduce:

  1. Use the new browser
  2. View an article without an enclosure and change the height of the article view
  3. Switch to an article with an enclosure.

The enclosure bar is not visible. There are a bunch of diagnostic issues in the console (see below).

The old browser is not affected. When I look at the visual debugger in Xcode, it seems that the new browser does not respond correctly to layout changes, even though it is embedded in a stack view.

1576 does not seem to be the cause for this bug, it happens in the current release version (3.8.3) also. I wonder if this could be a similar issue to #1592?


2022-10-01 13:08:43.843367+0200 Vienna[57731:12298182] [Layout] Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x600003c470c0 NSImageView:0x156f1bd40.height == 32   (active)>",
    "<NSLayoutConstraint:0x600003c15b80 'NSStackView.Edge.Bottom' V:[NSImageView:0x156f1bd40]-(>=0)-|   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c15ae0 'NSStackView.Edge.Top' V:|-(>=0)-[NSImageView:0x156f1bd40]   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c6fde0 V:|-(7)-[NSStackView:0x156f1b6c0]   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c6ff20 V:[NSStackView:0x156f1b6c0]-(6)-|   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c12e40 'NSStackView.Edge.Bottom' V:[EnclosureView:0x16102b7e0]-(>=0)-|   (active, names: '|':NSStackView:0x156f24c10 )>",
    "<NSLayoutConstraint:0x600003c14910 'NSStackView.Stack.Min' V:[NSView:0x161075880]-(>=0)-[EnclosureView:0x16102b7e0]   (active)>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003c36440 h=-&- v=-&- NSView:0x161075880.minY == 0   (active, names: '|':NSStackView:0x156f24c10 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003c470c0 NSImageView:0x156f1bd40.height == 32   (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.
2022-10-01 13:08:43.844190+0200 Vienna[57731:12298182] [Layout] Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x600003c159a0 'NSStackView.Edge.Min.Bottom' V:[DSClickableURLTextField:0x156f1e170]-(0)-|   (active, names: '|':NSStackView:0x156f1bfe0 )>",
    "<NSLayoutConstraint:0x600003c157c0 'NSStackView.Stack' V:[NSTextField:0x156f1ca20]-(3)-[DSClickableURLTextField:0x156f1e170]   (active)>",
    "<NSLayoutConstraint:0x600003c155e0 'NSStackView.Edge.Min.Top' V:|-(0)-[NSTextField:0x156f1ca20]   (active, names: '|':NSStackView:0x156f1bfe0 )>",
    "<NSLayoutConstraint:0x600003c15d60 'NSStackView.Edge.Bottom' V:[NSStackView:0x156f1bfe0]-(>=0)-|   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c15cc0 'NSStackView.Edge.Top' V:|-(>=0)-[NSStackView:0x156f1bfe0]   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c6fde0 V:|-(7)-[NSStackView:0x156f1b6c0]   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c6ff20 V:[NSStackView:0x156f1b6c0]-(6)-|   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c12e40 'NSStackView.Edge.Bottom' V:[EnclosureView:0x16102b7e0]-(>=0)-|   (active, names: '|':NSStackView:0x156f24c10 )>",
    "<NSLayoutConstraint:0x600003c14910 'NSStackView.Stack.Min' V:[NSView:0x161075880]-(>=0)-[EnclosureView:0x16102b7e0]   (active)>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003c36440 h=-&- v=-&- NSView:0x161075880.minY == 0   (active, names: '|':NSStackView:0x156f24c10 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003c157c0 'NSStackView.Stack' V:[NSTextField:0x156f1ca20]-(3)-[DSClickableURLTextField:0x156f1e170]   (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.
2022-10-01 13:08:43.845865+0200 Vienna[57731:12298182] [Layout] Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x600003c15b80 'NSStackView.Edge.Bottom' V:[NSImageView:0x156f1bd40]-(>=0)-|   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c15ae0 'NSStackView.Edge.Top' V:|-(>=0)-[NSImageView:0x156f1bd40]   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c6fde0 V:|-(7)-[NSStackView:0x156f1b6c0]   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c6ff20 V:[NSStackView:0x156f1b6c0]-(6)-|   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c12e40 'NSStackView.Edge.Bottom' V:[EnclosureView:0x16102b7e0]-(>=0)-|   (active, names: '|':NSStackView:0x156f24c10 )>",
    "<NSLayoutConstraint:0x600003c14910 'NSStackView.Stack.Min' V:[NSView:0x161075880]-(>=0)-[EnclosureView:0x16102b7e0]   (active)>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003c36440 h=-&- v=-&- NSView:0x161075880.minY == 0   (active, names: '|':NSStackView:0x156f24c10 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003c15b80 'NSStackView.Edge.Bottom' V:[NSImageView:0x156f1bd40]-(>=0)-|   (active, names: '|':NSStackView:0x156f1b6c0 )>

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.
2022-10-01 13:08:43.846353+0200 Vienna[57731:12298182] [Layout] Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x600003c15d60 'NSStackView.Edge.Bottom' V:[NSStackView:0x156f1bfe0]-(>=0)-|   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c15cc0 'NSStackView.Edge.Top' V:|-(>=0)-[NSStackView:0x156f1bfe0]   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c6fde0 V:|-(7)-[NSStackView:0x156f1b6c0]   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c6ff20 V:[NSStackView:0x156f1b6c0]-(6)-|   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c12e40 'NSStackView.Edge.Bottom' V:[EnclosureView:0x16102b7e0]-(>=0)-|   (active, names: '|':NSStackView:0x156f24c10 )>",
    "<NSLayoutConstraint:0x600003c14910 'NSStackView.Stack.Min' V:[NSView:0x161075880]-(>=0)-[EnclosureView:0x16102b7e0]   (active)>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003c36440 h=-&- v=-&- NSView:0x161075880.minY == 0   (active, names: '|':NSStackView:0x156f24c10 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003c15d60 'NSStackView.Edge.Bottom' V:[NSStackView:0x156f1bfe0]-(>=0)-|   (active, names: '|':NSStackView:0x156f1b6c0 )>

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.
2022-10-01 13:08:43.846870+0200 Vienna[57731:12298182] [Layout] Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x600003c6fde0 V:|-(7)-[NSStackView:0x156f1b6c0]   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c6ff20 V:[NSStackView:0x156f1b6c0]-(6)-|   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c12e40 'NSStackView.Edge.Bottom' V:[EnclosureView:0x16102b7e0]-(>=0)-|   (active, names: '|':NSStackView:0x156f24c10 )>",
    "<NSLayoutConstraint:0x600003c14910 'NSStackView.Stack.Min' V:[NSView:0x161075880]-(>=0)-[EnclosureView:0x16102b7e0]   (active)>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003c36440 h=-&- v=-&- NSView:0x161075880.minY == 0   (active, names: '|':NSStackView:0x156f24c10 )>",
    "<NSLayoutConstraint:0x600003c15f40 'NSStackView.Edge.Bottom' V:[NSButton:0x156f1f020'Download']-(>=0)-|   (active, names: '|':NSStackView:0x156f1b6c0 )>",
    "<NSLayoutConstraint:0x600003c15ea0 'NSStackView.Edge.Top' V:|-(>=0)-[NSButton:0x156f1f020'Download']   (active, names: '|':NSStackView:0x156f1b6c0 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003c15f40 'NSStackView.Edge.Bottom' V:[NSButton:0x156f1f020'Download']-(>=0)-|   (active, names: '|':NSStackView:0x156f1b6c0 )>

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.
2022-10-01 13:08:43.847471+0200 Vienna[57731:12298182] [Layout] Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x600003c6fde0 V:|-(7)-[NSStackView:0x156f1b6c0]   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c6ff20 V:[NSStackView:0x156f1b6c0]-(6)-|   (active, names: '|':EnclosureView:0x16102b7e0 )>",
    "<NSLayoutConstraint:0x600003c12e40 'NSStackView.Edge.Bottom' V:[EnclosureView:0x16102b7e0]-(>=0)-|   (active, names: '|':NSStackView:0x156f24c10 )>",
    "<NSLayoutConstraint:0x600003c14910 'NSStackView.Stack.Min' V:[NSView:0x161075880]-(>=0)-[EnclosureView:0x16102b7e0]   (active)>",
    "<NSAutoresizingMaskLayoutConstraint:0x600003c36440 h=-&- v=-&- NSView:0x161075880.minY == 0   (active, names: '|':NSStackView:0x156f24c10 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003c6ff20 V:[NSStackView:0x156f1b6c0]-(6)-|   (active, names: '|':EnclosureView:0x16102b7e0 )>

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.
barijaona commented 1 month ago

Closed with 3.9.2