From ab9b8aa0ede480e7788f1c82305ab35aa74ee4bd Mon Sep 17 00:00:00 2001 From: Adrian Samoticha Date: Wed, 9 Aug 2023 13:27:06 +0200 Subject: [PATCH 1/4] resolve #22 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 066c2a8..8d3033a 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ and the Flutter guide for + Methods and widgets to add, remove, and modify visual effect subviews. + Methods to set the window's level as well as reorder the window within its level. + Methods to modify the window's style mask. -+ An abstract `NSWindowDelegate` class that can be used detect `NSWindow` events, such as window resizing, moving, exposing, and minimizing. ++ An abstract `NSWindowDelegate` class that can be used to detect `NSWindow` events, such as window resizing, moving, exposing, and minimizing. + An `NSAppPresentationOptions` class that allows modifications to the window's fullscreen presentation options. Additionally, the package ships with an example project that showcases the plugin's features via an intuitive searchable user interface: From 44418e15b09256c5f38acce25e14fc717f29d545 Mon Sep 17 00:00:00 2001 From: Adrian Samoticha Date: Wed, 9 Aug 2023 13:58:32 +0200 Subject: [PATCH 2/4] resolve #31 --- lib/window_manipulator.dart | 5 +++++ macos/Classes/MacOSWindowUtilsPlugin.swift | 4 ++++ macos/Classes/MainFlutterWindowManipulator.swift | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/lib/window_manipulator.dart b/lib/window_manipulator.dart index 14b1ffd..34a231d 100644 --- a/lib/window_manipulator.dart +++ b/lib/window_manipulator.dart @@ -651,4 +651,9 @@ class WindowManipulator { '`enableWindowDelegate` parameter is set to true in your ' 'WindowManipulator.initialize call.'); } + + static Future isMainWindow() async { + await _completer.future; + return await _windowManipulatorMethodChannel.invokeMethod('isMainWindow'); + } } diff --git a/macos/Classes/MacOSWindowUtilsPlugin.swift b/macos/Classes/MacOSWindowUtilsPlugin.swift index 4e5a1a8..78b58d3 100644 --- a/macos/Classes/MacOSWindowUtilsPlugin.swift +++ b/macos/Classes/MacOSWindowUtilsPlugin.swift @@ -413,6 +413,10 @@ public class MacOSWindowUtilsPlugin: NSObject, FlutterPlugin { result(MainFlutterWindowManipulator.addFullScreenPresentationOptions(presentationOptions!)) + case "isMainWindow": + let isMainWindow = MainFlutterWindowManipulator.isMainWindow() + result(isMainWindow) + default: result(FlutterMethodNotImplemented) break diff --git a/macos/Classes/MainFlutterWindowManipulator.swift b/macos/Classes/MainFlutterWindowManipulator.swift index c7aa778..8be3b95 100644 --- a/macos/Classes/MainFlutterWindowManipulator.swift +++ b/macos/Classes/MainFlutterWindowManipulator.swift @@ -566,4 +566,12 @@ public class MainFlutterWindowManipulator { mainFlutterWindowDelegate?.addFullScreenPresentationOptions(presentationOptions) return true } + + public static func isMainWindow() -> Bool { + if (self.mainFlutterWindow == nil) { + start(mainFlutterWindow: nil) + } + + return self.mainFlutterWindow!.isMainWindow + } } From 3fdabd2e5362cc76ad6ce4a29b2e6e8002b5ef9e Mon Sep 17 00:00:00 2001 From: Adrian Samoticha Date: Wed, 9 Aug 2023 14:00:16 +0200 Subject: [PATCH 3/4] bump version to 1.2.0 --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index f6c6016..0db71c0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: macos_window_utils description: macos_window_utils is a Flutter package that provides a set of methods for modifying the NSWindow of a Flutter application on macOS. -version: 1.1.3 +version: 1.2.0 repository: https://github.com/Adrian-Samoticha/macos_window_utils.dart environment: From 7133825d4233adf341ac474c63900b09bd684455 Mon Sep 17 00:00:00 2001 From: Adrian Samoticha Date: Wed, 9 Aug 2023 14:00:25 +0200 Subject: [PATCH 4/4] add changelog entry for version 1.2.0 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48c099b..11c97c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 1.2.0 + +- Fix typo in README. +- Add `isMainWindow` getter to WindowManipulator. + ## 1.1.3 - Fix multiple `FlutterViewController`s being created, which prevented the apps from exiting properly on Flutter 3.10.