Add some comments on mouse handler(input service)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
parent
47d7e7ad93
commit
e6698f32d7
@ -408,7 +408,7 @@ fn active_mouse_(conn: i32) -> bool {
|
|||||||
|
|
||||||
let in_actived_dist = |a: i32, b: i32| -> bool { (a - b).abs() < MOUSE_ACTIVE_DISTANCE };
|
let in_actived_dist = |a: i32, b: i32| -> bool { (a - b).abs() < MOUSE_ACTIVE_DISTANCE };
|
||||||
|
|
||||||
// check if input is in valid range
|
// Check if input is in valid range
|
||||||
match crate::get_cursor_pos() {
|
match crate::get_cursor_pos() {
|
||||||
Some((x, y)) => {
|
Some((x, y)) => {
|
||||||
let (last_in_x, last_in_y) = {
|
let (last_in_x, last_in_y) = {
|
||||||
@ -417,10 +417,13 @@ fn active_mouse_(conn: i32) -> bool {
|
|||||||
};
|
};
|
||||||
let mut can_active =
|
let mut can_active =
|
||||||
in_actived_dist(last_in_x, x) && in_actived_dist(last_in_y, y);
|
in_actived_dist(last_in_x, x) && in_actived_dist(last_in_y, y);
|
||||||
|
// The cursor may not have been moved to last input position if system is busy now.
|
||||||
|
// While this is not a common case, we check it again after some time later.
|
||||||
if !can_active {
|
if !can_active {
|
||||||
// Try agin
|
// 10 micros may be enough for system to move cursor.
|
||||||
// No need to care about sleep here. It's not a common case.
|
// We do not care about the situation which system is too slow(more than 10 micros is required).
|
||||||
std::thread::sleep(std::time::Duration::from_micros(10));
|
std::thread::sleep(std::time::Duration::from_micros(10));
|
||||||
|
// Sleep here can also somehow suppress delay accumulation.
|
||||||
if let Some((x2, y2)) = crate::get_cursor_pos() {
|
if let Some((x2, y2)) = crate::get_cursor_pos() {
|
||||||
can_active =
|
can_active =
|
||||||
in_actived_dist(last_in_x, x2) && in_actived_dist(last_in_y, y2);
|
in_actived_dist(last_in_x, x2) && in_actived_dist(last_in_y, y2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user