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