bool xcb_reply_contains_atom(xcb_get_property_reply_t *prop, xcb_atom_t atom);
+/**
+ * Moves the mouse pointer into the middle of rect.
+ *
+ */
+void xcb_warp_pointer_rect(xcb_connection_t *conn, Rect *rect);
+
#endif
}
}
+ /* Memorize current output */
+ Con *old_output = con_get_output(focused);
+
con_focus(next);
workspace->fullscreen_mode = CF_OUTPUT;
LOG("focused now = %p / %s\n", focused, focused->name);
+ /* Set mouse pointer */
+ Con *new_output = con_get_output(focused);
+ if (old_output != new_output) {
+ xcb_warp_pointer_rect(conn, &next->rect);
+ }
+
/* Update the EWMH hints */
if (changed_num_workspaces)
ewmh_update_workarea();
return false;
}
+
+/**
+ * Moves the mouse pointer into the middle of rect.
+ *
+ */
+void xcb_warp_pointer_rect(xcb_connection_t *conn, Rect *rect) {
+ xcb_warp_pointer(conn, XCB_NONE, root, 0, 0, 0, 0,
+ rect->x + (rect->width / 2),
+ rect->y + (rect->height / 2));
+}