add MOUSE_MOVE_TIME to key event, may work for
https://github.com/rustdesk/rustdesk/issues/8633 when window resume via keyboard rather than mouse
This commit is contained in:
parent
7d961d895b
commit
3c7e24c605
@ -8,6 +8,7 @@ import 'package:flutter_hbb/models/platform_model.dart';
|
|||||||
import 'package:flutter_hbb/models/state_model.dart';
|
import 'package:flutter_hbb/models/state_model.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
// import 'package:flutter/services.dart';
|
||||||
|
|
||||||
import '../../common/shared_state.dart';
|
import '../../common/shared_state.dart';
|
||||||
|
|
||||||
@ -41,6 +42,7 @@ class _DesktopTabPageState extends State<DesktopTabPage>
|
|||||||
final tabController = DesktopTabController(tabType: DesktopTabType.main);
|
final tabController = DesktopTabController(tabType: DesktopTabType.main);
|
||||||
|
|
||||||
final RxBool _block = false.obs;
|
final RxBool _block = false.obs;
|
||||||
|
// bool mouseIn = false;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void didChangeAppLifecycleState(AppLifecycleState state) {
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||||
@ -53,6 +55,7 @@ class _DesktopTabPageState extends State<DesktopTabPage>
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
// HardwareKeyboard.instance.addHandler(_handleKeyEvent);
|
||||||
WidgetsBinding.instance.addObserver(this);
|
WidgetsBinding.instance.addObserver(this);
|
||||||
Get.put<DesktopTabController>(tabController);
|
Get.put<DesktopTabController>(tabController);
|
||||||
RemoteCountState.init();
|
RemoteCountState.init();
|
||||||
@ -78,8 +81,19 @@ class _DesktopTabPageState extends State<DesktopTabPage>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
bool _handleKeyEvent(KeyEvent event) {
|
||||||
|
if (!mouseIn && event is KeyDownEvent) {
|
||||||
|
print('key down: ${event.logicalKey}');
|
||||||
|
shouldBeBlocked(_block, canBeBlocked);
|
||||||
|
}
|
||||||
|
return false; // allow it to propagate
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
// HardwareKeyboard.instance.removeHandler(_handleKeyEvent);
|
||||||
WidgetsBinding.instance.removeObserver(this);
|
WidgetsBinding.instance.removeObserver(this);
|
||||||
Get.delete<DesktopTabController>();
|
Get.delete<DesktopTabController>();
|
||||||
|
|
||||||
@ -105,8 +119,12 @@ class _DesktopTabPageState extends State<DesktopTabPage>
|
|||||||
)));
|
)));
|
||||||
widget() => MouseRegion(
|
widget() => MouseRegion(
|
||||||
onEnter: (_) async {
|
onEnter: (_) async {
|
||||||
|
// mouseIn = true;
|
||||||
await shouldBeBlocked(_block, canBeBlocked);
|
await shouldBeBlocked(_block, canBeBlocked);
|
||||||
},
|
},
|
||||||
|
onExit: (_) {
|
||||||
|
// mouseIn = false;
|
||||||
|
},
|
||||||
child: FocusScope(child: tabWidget, canRequestFocus: !_block.value));
|
child: FocusScope(child: tabWidget, canRequestFocus: !_block.value));
|
||||||
return isMacOS || kUseCompatibleUiMode
|
return isMacOS || kUseCompatibleUiMode
|
||||||
? Obx(() => widget())
|
? Obx(() => widget())
|
||||||
|
@ -1999,6 +1999,8 @@ impl Connection {
|
|||||||
if is_enter(&me) {
|
if is_enter(&me) {
|
||||||
CLICK_TIME.store(get_time(), Ordering::SeqCst);
|
CLICK_TIME.store(get_time(), Ordering::SeqCst);
|
||||||
}
|
}
|
||||||
|
// https://github.com/rustdesk/rustdesk/issues/8633
|
||||||
|
MOUSE_MOVE_TIME.store(get_time(), Ordering::SeqCst);
|
||||||
// handle all down as press
|
// handle all down as press
|
||||||
// fix unexpected repeating key on remote linux, seems also fix abnormal alt/shift, which
|
// fix unexpected repeating key on remote linux, seems also fix abnormal alt/shift, which
|
||||||
// make sure all key are released
|
// make sure all key are released
|
||||||
|
Loading…
x
Reference in New Issue
Block a user