Merge pull request #3156 from Kingtous/master
fix: --cm cannot exit on macOS
This commit is contained in:
commit
70c9ef6494
@ -49,6 +49,11 @@ int androidVersion = 0;
|
||||
int windowsBuildNumber = 0;
|
||||
DesktopType? desktopType;
|
||||
|
||||
/// Check if the app is running with single view mode.
|
||||
bool isSingleViewApp() {
|
||||
return desktopType == DesktopType.cm;
|
||||
}
|
||||
|
||||
/// * debug or test only, DO NOT enable in release build
|
||||
bool isTest = false;
|
||||
|
||||
|
@ -1,11 +1,13 @@
|
||||
// original cm window in Sciter version.
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hbb/consts.dart';
|
||||
import 'package:flutter_hbb/desktop/widgets/tabbar_widget.dart';
|
||||
import 'package:flutter_hbb/models/chat_model.dart';
|
||||
import 'package:flutter_hbb/utils/platform_channel.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
@ -47,8 +49,17 @@ class _DesktopServerPageState extends State<DesktopServerPage>
|
||||
|
||||
@override
|
||||
void onWindowClose() {
|
||||
gFFI.serverModel.closeAll();
|
||||
gFFI.close();
|
||||
Future.wait([
|
||||
gFFI.serverModel.closeAll(),
|
||||
gFFI.close()
|
||||
]).then((_) {
|
||||
if (Platform.isMacOS) {
|
||||
RdPlatformChannel.instance.terminate();
|
||||
} else {
|
||||
windowManager.setPreventClose(false);
|
||||
windowManager.close();
|
||||
}
|
||||
});
|
||||
super.onWindowClose();
|
||||
}
|
||||
|
||||
|
@ -1399,12 +1399,12 @@ class FFI {
|
||||
await setCanvasConfig(id, cursorModel.x, cursorModel.y, canvasModel.x,
|
||||
canvasModel.y, canvasModel.scale, ffiModel.pi.currentDisplay);
|
||||
}
|
||||
bind.sessionClose(id: id);
|
||||
imageModel.update(null);
|
||||
cursorModel.clear();
|
||||
ffiModel.clear();
|
||||
canvasModel.clear();
|
||||
inputModel.resetModifiers();
|
||||
await bind.sessionClose(id: id);
|
||||
debugPrint('model $id closed');
|
||||
id = '';
|
||||
}
|
||||
|
@ -560,10 +560,8 @@ class ServerModel with ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
closeAll() {
|
||||
for (var client in _clients) {
|
||||
bind.cmCloseConnection(connId: client.id);
|
||||
}
|
||||
Future<void> closeAll() async {
|
||||
await Future.wait(_clients.map((client) => bind.cmCloseConnection(connId: client.id)));
|
||||
_clients.clear();
|
||||
tabController.state.value.tabs.clear();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user