Browse Source

Force narrower default window size on launch.

Made-with: Cursor
huzaifahayat12 2 weeks ago
parent
commit
d95ba4c3ce
1 changed files with 18 additions and 4 deletions
  1. 18 4
      meetings_app/ViewController.swift

+ 18 - 4
meetings_app/ViewController.swift

@@ -33,6 +33,8 @@ private enum SettingsAction: Int {
33
 final class ViewController: NSViewController {
33
 final class ViewController: NSViewController {
34
     private let palette = Palette()
34
     private let palette = Palette()
35
     private let typography = Typography()
35
     private let typography = Typography()
36
+    private let launchContentSize = NSSize(width: 920, height: 690)
37
+    private let launchMinContentSize = NSSize(width: 760, height: 600)
36
 
38
 
37
     private var mainContentHost: NSView?
39
     private var mainContentHost: NSView?
38
     private var sidebarRowViews: [SidebarPage: NSView] = [:]
40
     private var sidebarRowViews: [SidebarPage: NSView] = [:]
@@ -80,11 +82,23 @@ final class ViewController: NSViewController {
80
 
82
 
81
     override func viewDidAppear() {
83
     override func viewDidAppear() {
82
         super.viewDidAppear()
84
         super.viewDidAppear()
83
-        view.window?.setContentSize(NSSize(width: 1120, height: 690))
84
-        view.window?.minSize = NSSize(width: 940, height: 600)
85
         applyWindowTitle(for: selectedSidebarPage)
85
         applyWindowTitle(for: selectedSidebarPage)
86
-        if let window = view.window {
87
-            installCenteredTitleIfNeeded(on: window)
86
+        guard let window = view.window else { return }
87
+
88
+        // Ensure launch size is applied even when macOS tries to restore prior window state.
89
+        window.isRestorable = false
90
+        window.setFrameAutosaveName("")
91
+
92
+        DispatchQueue.main.async { [weak self, weak window] in
93
+            guard let self, let window else { return }
94
+
95
+            let frameSize = window.frameRect(forContentRect: NSRect(origin: .zero, size: self.launchContentSize)).size
96
+            var newFrame = window.frame
97
+            newFrame.size = frameSize
98
+            window.setFrame(newFrame, display: true)
99
+
100
+            window.minSize = window.frameRect(forContentRect: NSRect(origin: .zero, size: self.launchMinContentSize)).size
101
+            self.installCenteredTitleIfNeeded(on: window)
88
         }
102
         }
89
     }
103
     }
90
 
104