diff --git a/lib/src/pages/manager.dart b/lib/src/pages/manager.dart index 43110d7..52a2614 100644 --- a/lib/src/pages/manager.dart +++ b/lib/src/pages/manager.dart @@ -9,6 +9,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:gettext_i18n/gettext_i18n.dart'; import 'package:path/path.dart' as path; import 'package:process_run/shell.dart'; +import 'package:version/version.dart'; import '../globals.dart'; import '../mixins/preferences_mixin.dart'; @@ -337,11 +338,18 @@ class _ManagerState extends State with PreferencesMixin { ), ], ), - ).then((result) { + ).then((result) async { result = result ?? false; if (result) { var shell = Shell(); - shell.run(['killall', currentVm].join(' ')); + // If Quickemu is newer than 4.9.6, use the new --kill option + // which is macOS compatible. + var quickemuVersion = Version.parse(await fetchQuickemuVersion()); + if (quickemuVersion >= Version(4, 9, 6)) { + shell.run(['quickemu', '--vm', '$currentVm.conf', '--kill'].join(' ')); + } else { + shell.run(['killall', currentVm].join(' ')); + } setState(() { _activeVms.remove(currentVm); }); diff --git a/pubspec.lock b/pubspec.lock index af5e8a9..54aa9cc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -882,6 +882,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + version: + dependency: "direct main" + description: + name: version + sha256: "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94" + url: "https://pub.dev" + source: hosted + version: "3.0.2" vm_service: dependency: transitive description: diff --git a/pubspec.lock.json b/pubspec.lock.json index 575ffdf..891b7da 100644 --- a/pubspec.lock.json +++ b/pubspec.lock.json @@ -1100,6 +1100,16 @@ "source": "hosted", "version": "2.1.4" }, + "version": { + "dependency": "direct main", + "description": { + "name": "version", + "sha256": "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, "vm_service": { "dependency": "transitive", "description": { diff --git a/pubspec.yaml b/pubspec.yaml index cc7e9c4..76ab7ae 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -26,6 +26,7 @@ dependencies: url_launcher: ^6.3.0 shared_preferences: ^2.2.3 tuple: ^2.0.2 + version: ^3.0.2 window_size: git: url: https://github.com/google/flutter-desktop-embedding.git