Opt: enter or leave
This commit is contained in:
parent
abf78ab6f7
commit
5dfd041d8f
@ -517,6 +517,19 @@ class _RemotePageState extends State<RemotePage>
|
||||
}
|
||||
}
|
||||
|
||||
void enterView(PointerEnterEvent evt) {
|
||||
if (!_imageFocused) {
|
||||
_physicalFocusNode.requestFocus();
|
||||
}
|
||||
_cursorOverImage.value = true;
|
||||
_ffi.enterOrLeave(true);
|
||||
}
|
||||
|
||||
void leaveView(PointerExitEvent evt) {
|
||||
_cursorOverImage.value = false;
|
||||
_ffi.enterOrLeave(false);
|
||||
}
|
||||
|
||||
Widget _buildImageListener(Widget child) {
|
||||
return Listener(
|
||||
onPointerHover: _onPointHoverImage,
|
||||
@ -525,15 +538,8 @@ class _RemotePageState extends State<RemotePage>
|
||||
onPointerMove: _onPointMoveImage,
|
||||
onPointerSignal: _onPointerSignalImage,
|
||||
child: MouseRegion(
|
||||
onEnter: (evt) {
|
||||
if (!_imageFocused) {
|
||||
_physicalFocusNode.requestFocus();
|
||||
}
|
||||
_cursorOverImage.value = true;
|
||||
},
|
||||
onExit: (evt) {
|
||||
_cursorOverImage.value = false;
|
||||
},
|
||||
onEnter: enterView,
|
||||
onExit: leaveView,
|
||||
child: child));
|
||||
}
|
||||
|
||||
|
@ -1003,6 +1003,10 @@ class FFI {
|
||||
downOrUp: down);
|
||||
}
|
||||
|
||||
void enterOrLeave(bool enter) {
|
||||
bind.sessionEnterOrLeave(id: id, enter: enter);
|
||||
}
|
||||
|
||||
/// Send key stroke event.
|
||||
/// [down] indicates the key's state(down or up).
|
||||
/// [press] indicates a click event(down and up).
|
||||
|
@ -247,6 +247,16 @@ pub fn session_handle_flutter_key_event(
|
||||
}
|
||||
}
|
||||
|
||||
pub fn session_enter_or_leave(id: String, enter: bool) {
|
||||
if let Some(session) = SESSIONS.read().unwrap().get(&id) {
|
||||
if enter {
|
||||
session.enter();
|
||||
} else {
|
||||
session.leave();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn session_input_key(
|
||||
id: String,
|
||||
name: String,
|
||||
|
Loading…
x
Reference in New Issue
Block a user