|
|
@@ -4024,13 +4024,20 @@ class ViewController: NSViewController {
|
|
|
planColumn.addArrangedSubview(footerWrap)
|
|
|
footerWrap.widthAnchor.constraint(equalTo: planColumn.widthAnchor).isActive = true
|
|
|
|
|
|
+ // Keep a comfortable top margin, but center the paywall content vertically when there's room.
|
|
|
+ let contentTopMin = contentStack.topAnchor.constraint(greaterThanOrEqualTo: panel.topAnchor, constant: 84)
|
|
|
+ let contentBottomMax = contentStack.bottomAnchor.constraint(lessThanOrEqualTo: panel.bottomAnchor, constant: -18)
|
|
|
+ let contentCenterY = contentStack.centerYAnchor.constraint(equalTo: panel.centerYAnchor)
|
|
|
+ contentCenterY.priority = .defaultLow
|
|
|
+
|
|
|
let contentBottomEq = contentStack.bottomAnchor.constraint(equalTo: panel.bottomAnchor, constant: -18)
|
|
|
contentBottomEq.priority = .defaultLow
|
|
|
NSLayoutConstraint.activate([
|
|
|
contentStack.leadingAnchor.constraint(equalTo: panel.leadingAnchor, constant: 22),
|
|
|
contentStack.trailingAnchor.constraint(equalTo: panel.trailingAnchor, constant: -22),
|
|
|
- contentStack.topAnchor.constraint(equalTo: panel.topAnchor, constant: 56),
|
|
|
- contentStack.bottomAnchor.constraint(lessThanOrEqualTo: panel.bottomAnchor, constant: -18),
|
|
|
+ contentTopMin,
|
|
|
+ contentBottomMax,
|
|
|
+ contentCenterY,
|
|
|
contentBottomEq
|
|
|
])
|
|
|
|