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) {
|
Widget _buildImageListener(Widget child) {
|
||||||
return Listener(
|
return Listener(
|
||||||
onPointerHover: _onPointHoverImage,
|
onPointerHover: _onPointHoverImage,
|
||||||
@ -525,15 +538,8 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
onPointerMove: _onPointMoveImage,
|
onPointerMove: _onPointMoveImage,
|
||||||
onPointerSignal: _onPointerSignalImage,
|
onPointerSignal: _onPointerSignalImage,
|
||||||
child: MouseRegion(
|
child: MouseRegion(
|
||||||
onEnter: (evt) {
|
onEnter: enterView,
|
||||||
if (!_imageFocused) {
|
onExit: leaveView,
|
||||||
_physicalFocusNode.requestFocus();
|
|
||||||
}
|
|
||||||
_cursorOverImage.value = true;
|
|
||||||
},
|
|
||||||
onExit: (evt) {
|
|
||||||
_cursorOverImage.value = false;
|
|
||||||
},
|
|
||||||
child: child));
|
child: child));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1003,6 +1003,10 @@ class FFI {
|
|||||||
downOrUp: down);
|
downOrUp: down);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void enterOrLeave(bool enter) {
|
||||||
|
bind.sessionEnterOrLeave(id: id, enter: enter);
|
||||||
|
}
|
||||||
|
|
||||||
/// Send key stroke event.
|
/// Send key stroke event.
|
||||||
/// [down] indicates the key's state(down or up).
|
/// [down] indicates the key's state(down or up).
|
||||||
/// [press] indicates a click event(down and 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(
|
pub fn session_input_key(
|
||||||
id: String,
|
id: String,
|
||||||
name: String,
|
name: String,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user