Ver Fonte

Force narrower default window size on launch.

Made-with: Cursor
huzaifahayat12 há 3 meses atrás
pai
commit
d95ba4c3ce
1 ficheiros alterados com 18 adições e 4 exclusões
  1. 18 4
      meetings_app/ViewController.swift

+ 18 - 4
meetings_app/ViewController.swift

@@ -33,6 +33,8 @@ private enum SettingsAction: Int {
 final class ViewController: NSViewController {
     private let palette = Palette()
     private let typography = Typography()
+    private let launchContentSize = NSSize(width: 920, height: 690)
+    private let launchMinContentSize = NSSize(width: 760, height: 600)
 
     private var mainContentHost: NSView?
     private var sidebarRowViews: [SidebarPage: NSView] = [:]
@@ -80,11 +82,23 @@ final class ViewController: NSViewController {
 
     override func viewDidAppear() {
         super.viewDidAppear()
-        view.window?.setContentSize(NSSize(width: 1120, height: 690))
-        view.window?.minSize = NSSize(width: 940, height: 600)
         applyWindowTitle(for: selectedSidebarPage)
-        if let window = view.window {
-            installCenteredTitleIfNeeded(on: window)
+        guard let window = view.window else { return }
+
+        // Ensure launch size is applied even when macOS tries to restore prior window state.
+        window.isRestorable = false
+        window.setFrameAutosaveName("")
+
+        DispatchQueue.main.async { [weak self, weak window] in
+            guard let self, let window else { return }
+
+            let frameSize = window.frameRect(forContentRect: NSRect(origin: .zero, size: self.launchContentSize)).size
+            var newFrame = window.frame
+            newFrame.size = frameSize
+            window.setFrame(newFrame, display: true)
+
+            window.minSize = window.frameRect(forContentRect: NSRect(origin: .zero, size: self.launchMinContentSize)).size
+            self.installCenteredTitleIfNeeded(on: window)
         }
     }