diff --git a/lib/main.dart b/lib/main.dart index 2c7e5bd..3d92a60 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -27,7 +27,7 @@ import 'widgets/widgets.dart'; /// Studio's own build version. Bump on every UI commit so the /// running app self-identifies — visible in the sidebar header /// and quick-glance proof that you're seeing the current build. -const String kStudioVersion = '0.51.8'; +const String kStudioVersion = '0.51.9'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); diff --git a/linux/runner/my_application.cc b/linux/runner/my_application.cc index f3bd58e..1ce191f 100644 --- a/linux/runner/my_application.cc +++ b/linux/runner/my_application.cc @@ -52,7 +52,7 @@ static void my_application_activate(GApplication* application) { gtk_window_set_title(window, "F\u2206I Studio"); } - gtk_window_set_default_size(window, 1280, 720); + gtk_window_set_default_size(window, 1440, 900); g_autoptr(FlDartProject) project = fl_dart_project_new(); fl_dart_project_set_dart_entrypoint_arguments( diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift index 3d56843..d479ec9 100644 --- a/macos/Runner/MainFlutterWindow.swift +++ b/macos/Runner/MainFlutterWindow.swift @@ -4,15 +4,28 @@ import FlutterMacOS class MainFlutterWindow: NSWindow { override func awakeFromNib() { let flutterViewController = FlutterViewController() - let windowFrame = self.frame self.contentViewController = flutterViewController - self.setFrame(windowFrame, display: true) // Override the window title so the OS task switcher and // window chrome read "F∆I Studio" instead of the // pubspec-derived "fai_studio". self.title = "F∆I Studio" + // Pick a comfortable default window size. 1440x900 is the + // effective Retina resolution of a 13" MacBook (Stefan's + // dev machine) and the smallest "modern desktop" footprint + // that comfortably fits the sidebar, content area, and a + // tooling panel side-by-side. Clamp to the active screen's + // visibleFrame so we never open larger than the display — + // important for external monitors at non-Retina scales. + if let screen = NSScreen.main { + let visible = screen.visibleFrame + let targetWidth = min(CGFloat(1440), visible.width) + let targetHeight = min(CGFloat(900), visible.height) + self.setContentSize(NSSize(width: targetWidth, height: targetHeight)) + self.center() + } + RegisterGeneratedPlugins(registry: flutterViewController) super.awakeFromNib() diff --git a/pubspec.yaml b/pubspec.yaml index 0fb50a8..24982bd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: fai_studio description: "F∆I Studio — desktop GUI for the F∆I hub" publish_to: 'none' -version: 0.51.8 +version: 0.51.9 environment: sdk: ^3.11.0-200.1.beta diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp index f7734db..a24729f 100644 --- a/windows/runner/main.cpp +++ b/windows/runner/main.cpp @@ -26,7 +26,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); - Win32Window::Size size(1280, 720); + Win32Window::Size size(1440, 900); if (!window.Create(L"F\u2206I Studio", origin, size)) { return EXIT_FAILURE; }