|
@@ -308,6 +308,8 @@ final class DashboardView: NSView, NSTextFieldDelegate {
|
|
308
|
chatScrollView.translatesAutoresizingMaskIntoConstraints = false
|
308
|
chatScrollView.translatesAutoresizingMaskIntoConstraints = false
|
|
309
|
chatScrollView.hasVerticalScroller = true
|
309
|
chatScrollView.hasVerticalScroller = true
|
|
310
|
chatScrollView.hasHorizontalScroller = false
|
310
|
chatScrollView.hasHorizontalScroller = false
|
|
|
|
311
|
+ // Legacy reserves a dedicated track to the right of the clip view so the thumb never sits on top of cards/buttons.
|
|
|
|
312
|
+ chatScrollView.scrollerStyle = .legacy
|
|
311
|
chatScrollView.autohidesScrollers = true
|
313
|
chatScrollView.autohidesScrollers = true
|
|
312
|
chatScrollView.drawsBackground = false
|
314
|
chatScrollView.drawsBackground = false
|
|
313
|
chatScrollView.borderType = .noBorder
|
315
|
chatScrollView.borderType = .noBorder
|
|
@@ -315,6 +317,12 @@ final class DashboardView: NSView, NSTextFieldDelegate {
|
|
315
|
chatScrollView.setContentHuggingPriority(.defaultLow, for: .vertical)
|
317
|
chatScrollView.setContentHuggingPriority(.defaultLow, for: .vertical)
|
|
316
|
chatScrollView.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
|
318
|
chatScrollView.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
|
|
317
|
chatScrollView.heightAnchor.constraint(greaterThanOrEqualToConstant: 320).isActive = true
|
319
|
chatScrollView.heightAnchor.constraint(greaterThanOrEqualToConstant: 320).isActive = true
|
|
|
|
320
|
+ // Match Saved Jobs: pin document width to the clip view so cards and bubbles track window width instead of sticking to a narrow intrinsic width.
|
|
|
|
321
|
+ NSLayoutConstraint.activate([
|
|
|
|
322
|
+ chatDocumentView.topAnchor.constraint(equalTo: chatScrollView.contentView.topAnchor),
|
|
|
|
323
|
+ chatDocumentView.leadingAnchor.constraint(equalTo: chatScrollView.contentView.leadingAnchor),
|
|
|
|
324
|
+ chatDocumentView.widthAnchor.constraint(equalTo: chatScrollView.contentView.widthAnchor)
|
|
|
|
325
|
+ ])
|
|
318
|
}
|
326
|
}
|
|
319
|
|
327
|
|
|
320
|
private func updateJobListingDescriptionWidths() {
|
328
|
private func updateJobListingDescriptionWidths() {
|
|
@@ -896,6 +904,7 @@ final class DashboardView: NSView, NSTextFieldDelegate {
|
|
896
|
savedJobsScrollView.translatesAutoresizingMaskIntoConstraints = false
|
904
|
savedJobsScrollView.translatesAutoresizingMaskIntoConstraints = false
|
|
897
|
savedJobsScrollView.hasVerticalScroller = true
|
905
|
savedJobsScrollView.hasVerticalScroller = true
|
|
898
|
savedJobsScrollView.hasHorizontalScroller = false
|
906
|
savedJobsScrollView.hasHorizontalScroller = false
|
|
|
|
907
|
+ savedJobsScrollView.scrollerStyle = .legacy
|
|
899
|
savedJobsScrollView.autohidesScrollers = true
|
908
|
savedJobsScrollView.autohidesScrollers = true
|
|
900
|
savedJobsScrollView.drawsBackground = false
|
909
|
savedJobsScrollView.drawsBackground = false
|
|
901
|
savedJobsScrollView.borderType = .noBorder
|
910
|
savedJobsScrollView.borderType = .noBorder
|
|
@@ -1397,7 +1406,7 @@ final class DashboardView: NSView, NSTextFieldDelegate {
|
|
1397
|
let column = NSStackView(views: [nameLabel, bubble])
|
1406
|
let column = NSStackView(views: [nameLabel, bubble])
|
|
1398
|
column.orientation = .vertical
|
1407
|
column.orientation = .vertical
|
|
1399
|
column.spacing = 6
|
1408
|
column.spacing = 6
|
|
1400
|
- column.alignment = .leading
|
|
|
|
|
|
1409
|
+ column.alignment = .width
|
|
1401
|
column.translatesAutoresizingMaskIntoConstraints = false
|
1410
|
column.translatesAutoresizingMaskIntoConstraints = false
|
|
1402
|
|
1411
|
|
|
1403
|
if let jobs, !jobs.isEmpty {
|
1412
|
if let jobs, !jobs.isEmpty {
|
|
@@ -1488,7 +1497,7 @@ final class DashboardView: NSView, NSTextFieldDelegate {
|
|
1488
|
let stack = ChatJobsStackView()
|
1497
|
let stack = ChatJobsStackView()
|
|
1489
|
stack.orientation = .vertical
|
1498
|
stack.orientation = .vertical
|
|
1490
|
stack.spacing = 10
|
1499
|
stack.spacing = 10
|
|
1491
|
- stack.alignment = .leading
|
|
|
|
|
|
1500
|
+ stack.alignment = .width
|
|
1492
|
stack.distribution = .fill
|
1501
|
stack.distribution = .fill
|
|
1493
|
stack.translatesAutoresizingMaskIntoConstraints = false
|
1502
|
stack.translatesAutoresizingMaskIntoConstraints = false
|
|
1494
|
|
1503
|
|