struct wlr_seat *seat;
struct server *server;
struct wlr_keyboard_group *keyboard_group;
+
struct wlr_cursor *cursor;
struct wlr_xcursor_manager *xcursor_manager;
+
struct wlr_drag_icon *drag_icon;
struct wlr_pointer_constraint_v1 *current_constraint;
struct wlr_idle *wlr_idle;
struct view *desktop_view_at_cursor(struct server *server);
+void cursor_set(struct seat *seat, const char *cursor_name);
void cursor_init(struct seat *seat);
void keyboard_init(struct seat *seat);
view_move_resize(view, new_view_geo);
}
-static void
-set_cursor(struct server *server, const char *cursor_name)
+void
+cursor_set(struct seat *seat, const char *cursor_name)
{
wlr_xcursor_manager_set_cursor_image(
- server->seat.xcursor_manager, cursor_name, server->seat.cursor);
+ seat->xcursor_manager, cursor_name, seat->cursor);
}
bool
&sx, &sy, &view_area);
if (!view) {
- set_cursor(server, XCURSOR_DEFAULT);
+ cursor_set(&server->seat, XCURSOR_DEFAULT);
} else {
uint32_t resize_edges = ssd_resize_edges(view_area);
if (resize_edges) {
cursor_name_set_by_server = true;
- set_cursor(server,
+ cursor_set(&server->seat,
wlr_xcursor_get_resize_name(resize_edges));
} else if (view_area != LAB_SSD_NONE) {
/* title and buttons */
- set_cursor(server, XCURSOR_DEFAULT);
+ cursor_set(&server->seat, XCURSOR_DEFAULT);
cursor_name_set_by_server = true;
} else if (cursor_name_set_by_server) {
- set_cursor(server, XCURSOR_DEFAULT);
+ cursor_set(&server->seat, XCURSOR_DEFAULT);
cursor_name_set_by_server = false;
}
}
};
memcpy(&server->grab_box, &box, sizeof(struct wlr_box));
server->resize_edges = edges;
+
+ switch (mode) {
+ case LAB_INPUT_STATE_MOVE:
+ cursor_set(&server->seat, "move");
+ break;
+ case LAB_INPUT_STATE_RESIZE:
+ cursor_set(&server->seat, wlr_xcursor_get_resize_name(edges));
+ break;
+ default:
+ break;
+ }
}