#define LAB_DISABLE_CSD (0)
enum cursor_mode {
- TINYWL_CURSOR_PASSTHROUGH,
- TINYWL_CURSOR_MOVE,
- TINYWL_CURSOR_RESIZE,
+ LAB_CURSOR_PASSTHROUGH,
+ LAB_CURSOR_MOVE,
+ LAB_CURSOR_RESIZE,
};
struct server {
static void process_cursor_motion(struct server *server, uint32_t time)
{
/* If the mode is non-passthrough, delegate to those functions. */
- if (server->cursor_mode == TINYWL_CURSOR_MOVE) {
+ if (server->cursor_mode == LAB_CURSOR_MOVE) {
process_cursor_move(server, time);
return;
- } else if (server->cursor_mode == TINYWL_CURSOR_RESIZE) {
+ } else if (server->cursor_mode == LAB_CURSOR_RESIZE) {
process_cursor_resize(server, time);
return;
}
* a default. This is what makes the cursor image appear when
* you move it around the screen, not over any views. */
wlr_xcursor_manager_set_cursor_image(
- server->cursor_mgr, "left_ptr", server->cursor);
+ server->cursor_mgr, XCURSOR_DEFAULT, server->cursor);
}
switch (view_area) {
case LAB_DECO_PART_TOP:
wlr_xcursor_manager_set_cursor_image(
- server->cursor_mgr, "left_ptr", server->cursor);
+ server->cursor_mgr, XCURSOR_DEFAULT, server->cursor);
break;
case LAB_DECO_PART_LEFT:
wlr_xcursor_manager_set_cursor_image(
&view_area);
if (event->state == WLR_BUTTON_RELEASED) {
/* Exit interactive move/resize mode. */
- server->cursor_mode = TINYWL_CURSOR_PASSTHROUGH;
+ server->cursor_mode = LAB_CURSOR_PASSTHROUGH;
} else {
/* Focus that client if the button was _pressed_ */
view_focus(view);
switch (view_area) {
case LAB_DECO_PART_TOP:
- interactive_begin(view, TINYWL_CURSOR_MOVE, 0);
+ interactive_begin(view, LAB_CURSOR_MOVE, 0);
break;
case LAB_DECO_PART_LEFT:
- interactive_begin(view, TINYWL_CURSOR_RESIZE,
+ interactive_begin(view, LAB_CURSOR_RESIZE,
WLR_EDGE_LEFT);
break;
}
}
break;
case XKB_KEY_F6:
- interactive_begin(view_front_toplevel(server),
- TINYWL_CURSOR_MOVE, 0);
+ interactive_begin(view_front_toplevel(server), LAB_CURSOR_MOVE,
+ 0);
break;
case XKB_KEY_F12:
dbg_show_views(server);
ox += view->x + sx;
oy += view->y + sy;
- /* We also have to apply the scale factor for HiDPI outputs. This is
- * only part of the puzzle, TinyWL does not fully support HiDPI. */
+ /* TODO: Support HiDPI */
struct wlr_box box = {
.x = ox * output->scale,
.y = oy * output->scale,
wlr_matrix_project_box(matrix, &box, transform, 0,
output->transform_matrix);
- /* This takes our matrix, the texture, and an alpha, and performs the
- * actual rendering on the GPU. */
+ /*
+ * This takes our matrix, the texture, and an alpha, and performs the
+ * actual rendering on the GPU.
+ */
wlr_render_texture_with_matrix(rdata->renderer, texture, matrix, 1);
/* This lets the client know that we've displayed that frame and it can
* client, to prevent the client from requesting this whenever they
* want. */
struct view *view = wl_container_of(listener, view, request_move);
- interactive_begin(view, TINYWL_CURSOR_MOVE, 0);
+ interactive_begin(view, LAB_CURSOR_MOVE, 0);
}
void xdg_toplevel_request_resize(struct wl_listener *listener, void *data)
* want. */
struct wlr_xdg_toplevel_resize_event *event = data;
struct view *view = wl_container_of(listener, view, request_resize);
- interactive_begin(view, TINYWL_CURSOR_RESIZE, event->edges);
+ interactive_begin(view, LAB_CURSOR_RESIZE, event->edges);
}
void xdg_surface_new(struct wl_listener *listener, void *data)