From b7e8a63474b69b24503ace9502eda2f951bbf863 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sat, 11 Apr 2009 20:55:16 +0200 Subject: [PATCH] Bugfix: Fix warping of cursor when only switching screen, not workspace --- src/commands.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/commands.c b/src/commands.c index bd3e9f1c..728c6d7c 100644 --- a/src/commands.c +++ b/src/commands.c @@ -501,8 +501,13 @@ void show_workspace(xcb_connection_t *conn, int workspace) { /* Check if we need to change something or if we’re already there */ if (c_ws->screen->current_workspace == (workspace-1)) { - if (CUR_CELL->currently_focused != NULL) + if (CUR_CELL->currently_focused != NULL) { set_focus(conn, CUR_CELL->currently_focused, true); + if (need_warp) { + warp_pointer_into(conn, CUR_CELL->currently_focused); + xcb_flush(conn); + } + } return; } @@ -555,8 +560,10 @@ void show_workspace(xcb_connection_t *conn, int workspace) { /* Restore focus on the new workspace */ if (CUR_CELL->currently_focused != NULL) { set_focus(conn, CUR_CELL->currently_focused, true); - if (need_warp) + if (need_warp) { warp_pointer_into(conn, CUR_CELL->currently_focused); + xcb_flush(conn); + } } else xcb_set_input_focus(conn, XCB_INPUT_FOCUS_POINTER_ROOT, root, XCB_CURRENT_TIME); //xcb_ungrab_server(conn); -- 2.39.5