ソースを参照

Align sidebar and main panel with explicit layout constraints.

Replace the horizontal NSStackView with a panelsRow container so the sidebar and mainHost share the same top and bottom anchors, preserving prior chrome insets and column spacing.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 2 ヶ月 前
コミット
b120eafd0a
1 ファイル変更18 行追加15 行削除
  1. 18 15
      App for Indeed/Views/DashboardView.swift

+ 18 - 15
App for Indeed/Views/DashboardView.swift

@@ -80,7 +80,8 @@ final class DashboardView: NSView, NSTextFieldDelegate {
         ])
     }
 
-    private let contentStack = NSStackView()
+    /// Horizontal row for sidebar + main; plain view + constraints keep both panels top/bottom aligned (stack view height alignment was inconsistent).
+    private let panelsRow = NSView()
     private let chromeContainer = NSView()
     private let sidebar = NSStackView()
     private let mainHost = NSView()
@@ -208,13 +209,7 @@ final class DashboardView: NSView, NSTextFieldDelegate {
         wantsLayer = true
         layer?.backgroundColor = Theme.pageBackground.cgColor
 
-        contentStack.orientation = .horizontal
-        contentStack.spacing = 10
-        contentStack.distribution = .fill
-        contentStack.translatesAutoresizingMaskIntoConstraints = false
-        contentStack.alignment = .height
-        // Tighter chrome insets so panels sit closer to the window edges (especially leading / top under the title bar).
-        contentStack.edgeInsets = NSEdgeInsets(top: 10, left: 12, bottom: 20, right: 20)
+        panelsRow.translatesAutoresizingMaskIntoConstraints = false
 
         chromeContainer.translatesAutoresizingMaskIntoConstraints = false
         chromeContainer.wantsLayer = true
@@ -222,7 +217,7 @@ final class DashboardView: NSView, NSTextFieldDelegate {
         chromeContainer.layer?.cornerRadius = 18
         chromeContainer.layer?.masksToBounds = true
         addSubview(chromeContainer)
-        chromeContainer.addSubview(contentStack)
+        chromeContainer.addSubview(panelsRow)
 
         sidebar.orientation = .vertical
         sidebar.spacing = 10
@@ -331,8 +326,8 @@ final class DashboardView: NSView, NSTextFieldDelegate {
         mainOverlay.addArrangedSubview(chatBottomSpacer)
         mainOverlay.addArrangedSubview(searchBarShadowHost)
 
-        contentStack.addArrangedSubview(sidebar)
-        contentStack.addArrangedSubview(mainHost)
+        panelsRow.addSubview(sidebar)
+        panelsRow.addSubview(mainHost)
 
         NSLayoutConstraint.activate([
             chromeContainer.leadingAnchor.constraint(equalTo: leadingAnchor),
@@ -340,12 +335,20 @@ final class DashboardView: NSView, NSTextFieldDelegate {
             chromeContainer.topAnchor.constraint(equalTo: topAnchor),
             chromeContainer.bottomAnchor.constraint(equalTo: bottomAnchor),
 
-            contentStack.leadingAnchor.constraint(equalTo: chromeContainer.leadingAnchor),
-            contentStack.trailingAnchor.constraint(equalTo: chromeContainer.trailingAnchor),
-            contentStack.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor),
-            contentStack.bottomAnchor.constraint(equalTo: chromeContainer.bottomAnchor),
+            panelsRow.leadingAnchor.constraint(equalTo: chromeContainer.leadingAnchor, constant: 12),
+            panelsRow.trailingAnchor.constraint(equalTo: chromeContainer.trailingAnchor, constant: -20),
+            panelsRow.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 10),
+            panelsRow.bottomAnchor.constraint(equalTo: chromeContainer.bottomAnchor, constant: -20),
 
+            sidebar.leadingAnchor.constraint(equalTo: panelsRow.leadingAnchor),
+            sidebar.topAnchor.constraint(equalTo: panelsRow.topAnchor),
+            sidebar.bottomAnchor.constraint(equalTo: panelsRow.bottomAnchor),
             sidebar.widthAnchor.constraint(equalToConstant: 218),
+
+            mainHost.leadingAnchor.constraint(equalTo: sidebar.trailingAnchor, constant: 10),
+            mainHost.trailingAnchor.constraint(equalTo: panelsRow.trailingAnchor),
+            mainHost.topAnchor.constraint(equalTo: panelsRow.topAnchor),
+            mainHost.bottomAnchor.constraint(equalTo: panelsRow.bottomAnchor),
             mainHost.widthAnchor.constraint(greaterThanOrEqualToConstant: 720),
 
             mainOverlay.leadingAnchor.constraint(equalTo: mainHost.leadingAnchor),