fix: 修改 wm_set_current_monitor 函数实现避免光标乱跳

- 将 wm_set_current_monitor 改为支持 restore_cursor 参数,按场景决定是
  否恢复光标位置
- 仅在指针位于当前显示器时更新 cursor_position 缓存,减少错误覆盖
This commit is contained in:
2026-03-03 07:18:17 +08:00
parent fb0999df90
commit 4428eb056d
5 changed files with 14 additions and 13 deletions

View File

@@ -295,7 +295,7 @@ void client_send_to_monitor(client_t *client, monitor_t *monitor) {
client->tags = monitor->selected_tag->mask;
client_add_to_tag(client, monitor->selected_tag);
wm_set_current_monitor(monitor);
wm_set_current_monitor(monitor, true);
monitor_arrange(m);
monitor_arrange(monitor);
monitor_draw_bar(m);
@@ -607,7 +607,7 @@ void client_apply_rules(client_t *client, const rule_t rules[],
client->tags = t->mask;
if (r->switch_to_tag) {
wm_set_current_monitor(m);
wm_set_current_monitor(m, true);
m->selected_tag = t;
logger("++ switch to tag: %u\n", t->index);