From be5eb263852840237ce20d15344cc1e78414d066 Mon Sep 17 00:00:00 2001 From: lwouis Date: Mon, 30 Dec 2024 12:17:02 +0100 Subject: [PATCH] fix: layout was sometimes broken in app-icons style (closes #4036) --- src/ui/main-window/ThumbnailView.swift | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/ui/main-window/ThumbnailView.swift b/src/ui/main-window/ThumbnailView.swift index bac22bdf..d9ec3631 100644 --- a/src/ui/main-window/ThumbnailView.swift +++ b/src/ui/main-window/ThumbnailView.swift @@ -64,6 +64,7 @@ class ThumbnailView: NSStackView { private func addViews() { vStackView = NSStackView() + vStackView.translatesAutoresizingMaskIntoConstraints = false vStackView.orientation = .vertical vStackView.wantsLayer = true vStackView.layer!.backgroundColor = .clear @@ -76,15 +77,15 @@ class ThumbnailView: NSStackView { if Preferences.appearanceStyle == .appIcons { // The label is outside and below the selected icon in AppIcons style hStackView = NSStackView(views: [appIcon]) + hStackView.translatesAutoresizingMaskIntoConstraints = false vStackView.setViews([hStackView], in: .leading) label.alignment = .center - addSubview(label) label.isHidden = true + addSubview(label) NSLayoutConstraint.activate([ - vStackView.leadingAnchor.constraint(equalTo: leadingAnchor), - vStackView.trailingAnchor.constraint(equalTo: trailingAnchor), - vStackView.topAnchor.constraint(equalTo: topAnchor), - label.topAnchor.constraint(equalTo: vStackView.bottomAnchor), + hStackView.heightAnchor.constraint(equalTo: appIcon.heightAnchor), + vStackView.heightAnchor.constraint(equalTo: hStackView.heightAnchor, constant: Appearance.intraCellPadding), + label.topAnchor.constraint(equalTo: vStackView.bottomAnchor, constant: 8), // subjectively looks vertically centered ]) } else { hStackView = NSStackView(views: [appIcon, label, hiddenIcon, fullscreenIcon, minimizedIcon, spaceIcon]) @@ -94,11 +95,8 @@ class ThumbnailView: NSStackView { thumbnailContainer.orientation = .vertical vStackView.setViews([hStackView, thumbnailContainer], in: .leading) NSLayoutConstraint.activate([ - label.centerYAnchor.constraint(equalTo: hStackView.centerYAnchor), - vStackView.leadingAnchor.constraint(equalTo: leadingAnchor), - vStackView.trailingAnchor.constraint(equalTo: trailingAnchor), - vStackView.topAnchor.constraint(equalTo: topAnchor), vStackView.bottomAnchor.constraint(equalTo: bottomAnchor), + label.centerYAnchor.constraint(equalTo: hStackView.centerYAnchor), thumbnailContainer.leftAnchor.constraint(equalTo: leftAnchor), thumbnailContainer.rightAnchor.constraint(equalTo: rightAnchor), ]) @@ -109,6 +107,11 @@ class ThumbnailView: NSStackView { } } } + NSLayoutConstraint.activate([ + vStackView.leadingAnchor.constraint(equalTo: leadingAnchor), + vStackView.trailingAnchor.constraint(equalTo: trailingAnchor), + vStackView.topAnchor.constraint(equalTo: topAnchor), + ]) } private func addDockLabelIcon() {