添加记录和恢复光标在每个 monitor 中的位置功能
This commit is contained in:
@@ -285,3 +285,21 @@ void monitor_arrange(monitor_t *monitor) {
|
||||
}
|
||||
xcb_flush(wm.xcb_conn);
|
||||
}
|
||||
|
||||
void monitor_save_cursor_point(monitor_t *monitor) {
|
||||
monitor->cursor_position = xcursor_query_pointer_position();
|
||||
monitor->position_inited = true;
|
||||
}
|
||||
|
||||
void monitor_restore_cursor_point(monitor_t *monitor) {
|
||||
if (monitor->position_inited) {
|
||||
xcursor_set_pointer_position(monitor->cursor_position);
|
||||
return;
|
||||
}
|
||||
|
||||
point_t point = xcursor_query_pointer_position();
|
||||
monitor_t *m = wm_get_monitor_by_point(point);
|
||||
monitor->cursor_position.x = point.x - m->geometry.x + monitor->geometry.x;
|
||||
monitor->cursor_position.y = point.y - m->geometry.y + monitor->geometry.y;
|
||||
monitor->position_inited = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user