diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/rootston/cursor.h | 2 | ||||
-rw-r--r-- | include/rootston/input.h | 2 | ||||
-rw-r--r-- | include/rootston/seat.h | 8 | ||||
-rw-r--r-- | include/rootston/view.h | 8 | ||||
-rw-r--r-- | include/wlr/types/wlr_output.h | 7 |
5 files changed, 27 insertions, 0 deletions
diff --git a/include/rootston/cursor.h b/include/rootston/cursor.h index 19ac4034..90d54c12 100644 --- a/include/rootston/cursor.h +++ b/include/rootston/cursor.h @@ -27,6 +27,8 @@ struct roots_cursor { float view_rotation; uint32_t resize_edges; + struct roots_seat_view *pointer_view; + struct wl_listener motion; struct wl_listener motion_absolute; struct wl_listener button; diff --git a/include/rootston/input.h b/include/rootston/input.h index 726dda24..2270ea0c 100644 --- a/include/rootston/input.h +++ b/include/rootston/input.h @@ -9,6 +9,8 @@ #include "rootston/view.h" #include "rootston/server.h" +struct roots_view; + struct roots_input { struct roots_config *config; struct roots_server *server; diff --git a/include/rootston/seat.h b/include/rootston/seat.h index cf5dd3b2..6ae7c3fa 100644 --- a/include/rootston/seat.h +++ b/include/rootston/seat.h @@ -28,6 +28,11 @@ struct roots_seat { struct roots_seat_view { struct roots_seat *seat; struct roots_view *view; + + bool has_button_grab; + double grab_vx; + double grab_vy; + struct wl_list link; // roots_seat::views struct wl_listener view_destroy; @@ -84,4 +89,7 @@ void roots_seat_begin_resize(struct roots_seat *seat, struct roots_view *view, void roots_seat_begin_rotate(struct roots_seat *seat, struct roots_view *view); +struct roots_seat_view *roots_seat_view_from_view( struct roots_seat *seat, + struct roots_view *view); + #endif diff --git a/include/rootston/view.h b/include/rootston/view.h index 579b148a..68ccbef8 100644 --- a/include/rootston/view.h +++ b/include/rootston/view.h @@ -6,6 +6,9 @@ #include <wlr/types/wlr_box.h> #include <wlr/types/wlr_surface.h> #include <wlr/types/wlr_xdg_shell_v6.h> +#include "rootston/seat.h" + +struct roots_seat; struct roots_wl_shell_surface { struct roots_view *view; @@ -61,6 +64,10 @@ struct roots_view { double x, y; float rotation; + bool decorated; + int border_width; + int titlebar_height; + bool maximized; struct roots_output *fullscreen_output; struct { @@ -113,6 +120,7 @@ struct roots_view { }; void view_get_box(const struct roots_view *view, struct wlr_box *box); +void view_get_deco_box(const struct roots_view *view, struct wlr_box *box); void view_activate(struct roots_view *view, bool active); void view_move(struct roots_view *view, double x, double y); void view_resize(struct roots_view *view, uint32_t width, uint32_t height); diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index 71463cb5..4c59d98b 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -136,4 +136,11 @@ enum wl_output_transform wlr_output_transform_invert( enum wl_output_transform wlr_output_transform_compose( enum wl_output_transform tr_a, enum wl_output_transform tr_b); +/** + * Get a matrix suitable for rendering a box on the output. + */ +void wlr_output_get_box_matrix(struct wlr_output *output, int ox, int oy, + int width, int height, enum wl_output_transform transform, + float rotation, float (*mat)[16]); + #endif |