fix: cannot input alt+tab when cursor is outside
This commit is contained in:
parent
f0653bb10a
commit
8bb62abd3e
@ -157,6 +157,11 @@ class _RemotePageState extends State<RemotePage>
|
||||
focusNode: _rawKeyFocusNode,
|
||||
onFocusChange: (bool v) {
|
||||
_imageFocused = v;
|
||||
if (_imageFocused) {
|
||||
_ffi.inputModel.enterOrLeave(true);
|
||||
} else {
|
||||
_ffi.inputModel.enterOrLeave(false);
|
||||
}
|
||||
},
|
||||
inputModel: _ffi.inputModel,
|
||||
child: getBodyForDesktop(context)));
|
||||
@ -195,7 +200,6 @@ class _RemotePageState extends State<RemotePage>
|
||||
//
|
||||
}
|
||||
}
|
||||
_ffi.inputModel.enterOrLeave(true);
|
||||
}
|
||||
|
||||
void leaveView(PointerExitEvent evt) {
|
||||
@ -208,7 +212,6 @@ class _RemotePageState extends State<RemotePage>
|
||||
//
|
||||
}
|
||||
}
|
||||
_ffi.inputModel.enterOrLeave(false);
|
||||
}
|
||||
|
||||
Widget getBodyForDesktop(BuildContext context) {
|
||||
|
@ -37,7 +37,8 @@ class ConnectionTabPage extends StatefulWidget {
|
||||
State<ConnectionTabPage> createState() => _ConnectionTabPageState(params);
|
||||
}
|
||||
|
||||
class _ConnectionTabPageState extends State<ConnectionTabPage> {
|
||||
class _ConnectionTabPageState extends State<ConnectionTabPage>
|
||||
with MultiWindowListener {
|
||||
final tabController = Get.put(DesktopTabController(
|
||||
tabType: DesktopTabType.remoteScreen,
|
||||
onSelected: (_, id) => bind.setCurSessionId(id: id)));
|
||||
@ -105,14 +106,26 @@ class _ConnectionTabPageState extends State<ConnectionTabPage> {
|
||||
}
|
||||
_update_remote_count();
|
||||
});
|
||||
DesktopMultiWindow.addListener(this);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
DesktopMultiWindow.removeListener(this);
|
||||
_menubarState.save();
|
||||
}
|
||||
|
||||
@override
|
||||
void onWindowBlur() {
|
||||
super.onWindowBlur();
|
||||
final state = tabController.state.value;
|
||||
if (state.tabs.isNotEmpty) {
|
||||
final sessionId = state.tabs[state.selected].key;
|
||||
bind.sessionEnterOrLeave(id: sessionId, enter: false);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final tabWidget = Obx(
|
||||
|
Loading…
Reference in New Issue
Block a user