/* 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;
}
/* 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);