summaryrefslogtreecommitdiff
path: root/sway/container.c
diff options
context:
space:
mode:
authorMikkel Oscar Lyderik <[email protected]>2016-03-29 14:47:30 +0200
committerMikkel Oscar Lyderik <[email protected]>2016-03-30 00:47:58 +0200
commit5a13cb0ed136906a4370235214601b0129548c49 (patch)
tree51dce6cdcb9bb1ffe27dcdc9a01ca9bda3a7c87a /sway/container.c
parent3b05f92f76c3bd9400320844e485eb06e94772cd (diff)
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).
Diffstat (limited to 'sway/container.c')
-rw-r--r--sway/container.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/sway/container.c b/sway/container.c
index ac0d3231..21a929b9 100644
--- a/sway/container.c
+++ b/sway/container.c
@@ -22,8 +22,8 @@ static swayc_t *new_swayc(enum swayc_types type) {
c->gaps = -1;
c->layout = L_NONE;
c->type = type;
- c->border_type = B_PIXEL; // TODO: Load default from config
- c->border_thickness = 2;
+ c->border_type = config->border;
+ c->border_thickness = config->border_thickness;
if (type != C_VIEW) {
c->children = create_list();
c->border_type = B_NONE;
@@ -269,11 +269,12 @@ swayc_t *new_view(swayc_t *sibling, wlc_handle handle) {
view->is_focused = true;
view->sticky = false;
// Setup geometry
- const struct wlc_geometry* geometry = wlc_view_get_geometry(handle);
+ struct wlc_geometry geometry;
+ wlc_view_get_visible_geometry(handle, &geometry);
view->width = 0;
view->height = 0;
- view->desired_width = geometry->size.w;
- view->desired_height = geometry->size.h;
+ view->desired_width = geometry.size.w;
+ view->desired_height = geometry.size.h;
view->is_floating = false;
@@ -306,13 +307,14 @@ swayc_t *new_floating_view(wlc_handle handle) {
view->sticky = false;
// Set the geometry of the floating view
- const struct wlc_geometry* geometry = wlc_view_get_geometry(handle);
+ struct wlc_geometry geometry;
+ wlc_view_get_visible_geometry(handle, &geometry);
// give it requested geometry, but place in center
- view->x = (swayc_active_workspace()->width - geometry->size.w) / 2;
- view->y = (swayc_active_workspace()->height- geometry->size.h) / 2;
- view->width = geometry->size.w;
- view->height = geometry->size.h;
+ view->x = (swayc_active_workspace()->width - geometry.size.w) / 2;
+ view->y = (swayc_active_workspace()->height- geometry.size.h) / 2;
+ view->width = geometry.size.w;
+ view->height = geometry.size.h;
view->desired_width = view->width;
view->desired_height = view->height;