Merge remote-tracking branch 'upstream/master' into output-damage

This commit is contained in:
emersion 2018-01-24 14:48:01 +01:00
commit 6281deb90f
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
15 changed files with 328 additions and 76 deletions

View file

@ -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;

View file

@ -31,6 +31,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;
@ -97,4 +102,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

View file

@ -64,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 {
@ -165,6 +169,19 @@ 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);
void view_child_init(struct roots_view_child *child, struct roots_view *view,
struct wlr_surface *wlr_surface);
void view_child_finish(struct roots_view_child *child);

View file

@ -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

View file

@ -93,6 +93,8 @@ struct wlr_output {
struct wlr_surface;
void wlr_output_enable(struct wlr_output *output, bool enable);
void wlr_output_create_global(struct wlr_output *output);
void wlr_output_destroy_global(struct wlr_output *output);
bool wlr_output_set_mode(struct wlr_output *output,
struct wlr_output_mode *mode);
bool wlr_output_set_custom_mode(struct wlr_output *output, int32_t width,