fix_cm: miminize window, mid commit
Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
parent
884a223449
commit
4272f0194e
@ -8,6 +8,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wakelock/wakelock.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
import 'package:flutter_custom_cursor/flutter_custom_cursor.dart';
|
||||
import 'package:flutter_improved_scrolling/flutter_improved_scrolling.dart';
|
||||
|
||||
@ -46,7 +47,7 @@ class RemotePage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _RemotePageState extends State<RemotePage>
|
||||
with AutomaticKeepAliveClientMixin {
|
||||
with AutomaticKeepAliveClientMixin, WindowListener {
|
||||
Timer? _timer;
|
||||
String keyboardMode = "legacy";
|
||||
final _cursorOverImage = false.obs;
|
||||
@ -248,6 +249,21 @@ class _RemotePageState extends State<RemotePage>
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void onWindowMinimize() {
|
||||
_ffi.chatModel.setWindowMinimized(true);
|
||||
}
|
||||
|
||||
@override
|
||||
void onWindowMaximize() {
|
||||
_ffi.chatModel.setWindowMinimized(false);
|
||||
}
|
||||
|
||||
@override
|
||||
void onWindowRestore() {
|
||||
_ffi.chatModel.setWindowMinimized(false);
|
||||
}
|
||||
|
||||
@override
|
||||
bool get wantKeepAlive => true;
|
||||
}
|
||||
|
@ -32,6 +32,8 @@ class ChatModel with ChangeNotifier {
|
||||
OverlayState? _overlayState;
|
||||
OverlayEntry? chatIconOverlayEntry;
|
||||
OverlayEntry? chatWindowOverlayEntry;
|
||||
bool _showOnWindowRestore = false;
|
||||
bool _isWindowMinimized = false;
|
||||
|
||||
final ChatUser me = ChatUser(
|
||||
id: "",
|
||||
@ -66,6 +68,14 @@ class ChatModel with ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
setWindowMinimized(bool v) {
|
||||
_isWindowMinimized = v;
|
||||
if (!_isWindowMinimized && _showOnWindowRestore) {
|
||||
showChatIconOverlay();
|
||||
_showOnWindowRestore = false;
|
||||
}
|
||||
}
|
||||
|
||||
setOverlayState(OverlayState? os) {
|
||||
_overlayState = os;
|
||||
}
|
||||
@ -101,6 +111,7 @@ class ChatModel with ChangeNotifier {
|
||||
initPositionYInTop: false,
|
||||
initPositionYMarginBorder: 100,
|
||||
borderTopContainTopBar: true,
|
||||
appBarHeight: 0,
|
||||
),
|
||||
child: FloatingActionButton(
|
||||
onPressed: () {
|
||||
@ -209,7 +220,11 @@ class ChatModel with ChangeNotifier {
|
||||
if (text.isEmpty) return;
|
||||
// mobile: first message show overlay icon
|
||||
if (chatIconOverlayEntry == null) {
|
||||
showChatIconOverlay();
|
||||
if (_isWindowMinimized) {
|
||||
showChatIconOverlay();
|
||||
} else {
|
||||
_showOnWindowRestore = true;
|
||||
}
|
||||
}
|
||||
// desktop: show chat page
|
||||
if (!_isShowChatPage) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user