Implement borders

The borders are implemented as a surface/buffer attached to each view
which is sent to and rendered by wlc in the view_pre_render callback.

All the drawing logic is handled in sway/border.c and all the logic for
calculating the geometry of the border/view is handled in
`update_geometry` in sway/layout.c (same place as gaps are calculated).
This commit is contained in:
Mikkel Oscar Lyderik 2016-03-29 14:47:30 +02:00
parent 3b05f92f76
commit 5a13cb0ed1
12 changed files with 386 additions and 149 deletions

View file

@ -9,7 +9,7 @@
#include <ctype.h>
#include "handlers.h"
#include "render.h"
#include "border.h"
#include "log.h"
#include "layout.h"
#include "config.h"
@ -349,15 +349,14 @@ static void handle_view_geometry_request(wlc_handle handle, const struct wlc_geo
view->desired_width = geometry->size.w;
view->desired_height = geometry->size.h;
if (view->is_floating) {
view->width = view->desired_width;
view->height = view->desired_height;
view->x = geometry->origin.x;
view->y = geometry->origin.y;
arrange_windows(view->parent, -1, -1);
}
/* if (view->is_floating) { */
/* view->width = view->desired_width; */
/* view->height = view->desired_height; */
/* view->x = geometry->origin.x; */
/* view->y = geometry->origin.y; */
/* /1* arrange_windows(view->parent, -1, -1); *1/ */
/* } */
}
update_view_border(view);
}
static void handle_view_state_request(wlc_handle view, enum wlc_view_state_bit state, bool toggle) {