int mouse_x;
int mouse_y;
+ int e_pointer_prev_x;
+ int e_pointer_prev_y;
+ int cal_x_pre;
+ int cal_y_pre;
+
struct wl_list peers;
};
cal_x = _e_rdp_get_pointer_x(output, x);
cal_y = _e_rdp_get_pointer_y(output, y);
- move_x = cal_x - e_comp->pointer->x;
- move_y = cal_y - e_comp->pointer->y;
+ if (output->e_pointer_prev_x == e_comp->pointer->x &&
+ output->e_pointer_prev_y == e_comp->pointer->y)
+ {
+ move_x = cal_x - output->cal_x_pre;
+ move_y = cal_y - output->cal_y_pre;
+ }
+ else
+ {
+ move_x = cal_x - e_comp->pointer->x;
+ move_y = cal_y - e_comp->pointer->y;
+ }
+ output->e_pointer_prev_x = e_comp->pointer->x;
+ output->e_pointer_prev_y = e_comp->pointer->y;
+ output->cal_x_pre = cal_x;
+ output->cal_y_pre = cal_y;
}
}
wl_list_init(&output->peers);
+ output->e_pointer_prev_x = -1;
+ output->e_pointer_prev_y = -1;
+
return output;
}