Просмотр исходного кода

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 недель назад: 3
Родитель
Сommit
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 {
80 80
         ])
81 81
     }
82 82
 
83
-    private let contentStack = NSStackView()
83
+    /// Horizontal row for sidebar + main; plain view + constraints keep both panels top/bottom aligned (stack view height alignment was inconsistent).
84
+    private let panelsRow = NSView()
84 85
     private let chromeContainer = NSView()
85 86
     private let sidebar = NSStackView()
86 87
     private let mainHost = NSView()
@@ -208,13 +209,7 @@ final class DashboardView: NSView, NSTextFieldDelegate {
208 209
         wantsLayer = true
209 210
         layer?.backgroundColor = Theme.pageBackground.cgColor
210 211
 
211
-        contentStack.orientation = .horizontal
212
-        contentStack.spacing = 10
213
-        contentStack.distribution = .fill
214
-        contentStack.translatesAutoresizingMaskIntoConstraints = false
215
-        contentStack.alignment = .height
216
-        // Tighter chrome insets so panels sit closer to the window edges (especially leading / top under the title bar).
217
-        contentStack.edgeInsets = NSEdgeInsets(top: 10, left: 12, bottom: 20, right: 20)
212
+        panelsRow.translatesAutoresizingMaskIntoConstraints = false
218 213
 
219 214
         chromeContainer.translatesAutoresizingMaskIntoConstraints = false
220 215
         chromeContainer.wantsLayer = true
@@ -222,7 +217,7 @@ final class DashboardView: NSView, NSTextFieldDelegate {
222 217
         chromeContainer.layer?.cornerRadius = 18
223 218
         chromeContainer.layer?.masksToBounds = true
224 219
         addSubview(chromeContainer)
225
-        chromeContainer.addSubview(contentStack)
220
+        chromeContainer.addSubview(panelsRow)
226 221
 
227 222
         sidebar.orientation = .vertical
228 223
         sidebar.spacing = 10
@@ -331,8 +326,8 @@ final class DashboardView: NSView, NSTextFieldDelegate {
331 326
         mainOverlay.addArrangedSubview(chatBottomSpacer)
332 327
         mainOverlay.addArrangedSubview(searchBarShadowHost)
333 328
 
334
-        contentStack.addArrangedSubview(sidebar)
335
-        contentStack.addArrangedSubview(mainHost)
329
+        panelsRow.addSubview(sidebar)
330
+        panelsRow.addSubview(mainHost)
336 331
 
337 332
         NSLayoutConstraint.activate([
338 333
             chromeContainer.leadingAnchor.constraint(equalTo: leadingAnchor),
@@ -340,12 +335,20 @@ final class DashboardView: NSView, NSTextFieldDelegate {
340 335
             chromeContainer.topAnchor.constraint(equalTo: topAnchor),
341 336
             chromeContainer.bottomAnchor.constraint(equalTo: bottomAnchor),
342 337
 
343
-            contentStack.leadingAnchor.constraint(equalTo: chromeContainer.leadingAnchor),
344
-            contentStack.trailingAnchor.constraint(equalTo: chromeContainer.trailingAnchor),
345
-            contentStack.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor),
346
-            contentStack.bottomAnchor.constraint(equalTo: chromeContainer.bottomAnchor),
338
+            panelsRow.leadingAnchor.constraint(equalTo: chromeContainer.leadingAnchor, constant: 12),
339
+            panelsRow.trailingAnchor.constraint(equalTo: chromeContainer.trailingAnchor, constant: -20),
340
+            panelsRow.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 10),
341
+            panelsRow.bottomAnchor.constraint(equalTo: chromeContainer.bottomAnchor, constant: -20),
347 342
 
343
+            sidebar.leadingAnchor.constraint(equalTo: panelsRow.leadingAnchor),
344
+            sidebar.topAnchor.constraint(equalTo: panelsRow.topAnchor),
345
+            sidebar.bottomAnchor.constraint(equalTo: panelsRow.bottomAnchor),
348 346
             sidebar.widthAnchor.constraint(equalToConstant: 218),
347
+
348
+            mainHost.leadingAnchor.constraint(equalTo: sidebar.trailingAnchor, constant: 10),
349
+            mainHost.trailingAnchor.constraint(equalTo: panelsRow.trailingAnchor),
350
+            mainHost.topAnchor.constraint(equalTo: panelsRow.topAnchor),
351
+            mainHost.bottomAnchor.constraint(equalTo: panelsRow.bottomAnchor),
349 352
             mainHost.widthAnchor.constraint(greaterThanOrEqualToConstant: 720),
350 353
 
351 354
             mainOverlay.leadingAnchor.constraint(equalTo: mainHost.leadingAnchor),