aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTony Crisci <tony@dubstepdish.com>2018-01-23 18:05:41 -0500
committerGitHub <noreply@github.com>2018-01-23 18:05:41 -0500
commitc09c2dfbc4a33aed90bf4c033a2a75e8a0cecb64 (patch)
treecb6279425d64e395590753fec23aae948ef91b8b /include
parent03440bbd83b5d68404db8ebc2df310ec0f8c9b32 (diff)
parenta4d601e3d6d6600bc4c26697d282616537ef9b02 (diff)
Merge pull request #570 from acrisci/decorations
Decorations
Diffstat (limited to 'include')
-rw-r--r--include/rootston/cursor.h2
-rw-r--r--include/rootston/seat.h8
-rw-r--r--include/rootston/view.h17
-rw-r--r--include/wlr/render/matrix.h4
4 files changed, 31 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/seat.h b/include/rootston/seat.h
index cf5dd3b2..966d98e5 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_sx;
+ double grab_sy;
+
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..e837586a 100644
--- a/include/rootston/view.h
+++ b/include/rootston/view.h
@@ -61,6 +61,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 {
@@ -126,4 +130,17 @@ bool view_center(struct roots_view *view);
void view_setup(struct roots_view *view);
void view_teardown(struct roots_view *view);
+void view_get_deco_box(const struct roots_view *view, struct wlr_box *box);
+
+enum roots_deco_part {
+ ROOTS_DECO_PART_NONE = 0,
+ ROOTS_DECO_PART_TOP_BORDER = (1 << 0),
+ ROOTS_DECO_PART_BOTTOM_BORDER = (1 << 1),
+ ROOTS_DECO_PART_LEFT_BORDER = (1 << 2),
+ ROOTS_DECO_PART_RIGHT_BORDER = (1 << 3),
+ ROOTS_DECO_PART_TITLEBAR = (1 << 4),
+};
+
+enum roots_deco_part view_get_deco_part(struct roots_view *view, double sx, double sy);
+
#endif
diff --git a/include/wlr/render/matrix.h b/include/wlr/render/matrix.h
index 0b35aad3..a333bf0f 100644
--- a/include/wlr/render/matrix.h
+++ b/include/wlr/render/matrix.h
@@ -2,6 +2,7 @@
#define WLR_RENDER_MATRIX_H
#include <stdint.h>
+#include <wlr/types/wlr_box.h>
void wlr_matrix_identity(float (*output)[16]);
void wlr_matrix_translate(float (*output)[16], float x, float y, float z);
@@ -14,5 +15,8 @@ void wlr_matrix_transform(float mat[static 16],
enum wl_output_transform transform);
void wlr_matrix_texture(float mat[static 16], int32_t width, int32_t height,
enum wl_output_transform transform);
+void wlr_matrix_project_box(float (*mat)[16], struct wlr_box *box,
+ enum wl_output_transform transform, float rotation, float
+ (*projection)[16]);
#endif