summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-03-29 14:47:30 +0200
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-03-30 00:47:58 +0200
commit5a13cb0ed136906a4370235214601b0129548c49 (patch)
tree51dce6cdcb9bb1ffe27dcdc9a01ca9bda3a7c87a /include
parentAdd border <none|normal|toggle|pixel> config (diff)
downloadsway-5a13cb0ed136906a4370235214601b0129548c49.tar.gz
sway-5a13cb0ed136906a4370235214601b0129548c49.tar.zst
sway-5a13cb0ed136906a4370235214601b0129548c49.zip
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 'include')
-rw-r--r--include/border.h (renamed from include/render.h)5
-rw-r--r--include/config.h1
-rw-r--r--include/container.h17
3 files changed, 13 insertions, 10 deletions
diff --git a/include/render.h b/include/border.h
index c3d1ca87..63cd63d2 100644
--- a/include/render.h
+++ b/include/border.h
@@ -1,9 +1,10 @@
1#ifndef _SWAY_RENDER_H 1#ifndef _SWAY_BORDER_H
2#define _SWAY_RENDER_H 2#define _SWAY_BORDER_H
3#include <wlc/wlc.h> 3#include <wlc/wlc.h>
4#include "container.h" 4#include "container.h"
5 5
6void render_view_borders(wlc_handle view); 6void render_view_borders(wlc_handle view);
7void update_view_border(swayc_t *view); 7void update_view_border(swayc_t *view);
8int get_font_text_height(const char *font);
8 9
9#endif 10#endif
diff --git a/include/config.h b/include/config.h
index a35cfd0a..fb84423c 100644
--- a/include/config.h
+++ b/include/config.h
@@ -184,6 +184,7 @@ struct sway_config {
184 enum swayc_layouts default_orientation; 184 enum swayc_layouts default_orientation;
185 enum swayc_layouts default_layout; 185 enum swayc_layouts default_layout;
186 char *font; 186 char *font;
187 int font_height;
187 188
188 // Flags 189 // Flags
189 bool focus_follows_mouse; 190 bool focus_follows_mouse;
diff --git a/include/container.h b/include/container.h
index 07514c8a..26da851e 100644
--- a/include/container.h
+++ b/include/container.h
@@ -115,15 +115,16 @@ struct sway_container {
115 * If this container's children include a fullscreen view, this is that view. 115 * If this container's children include a fullscreen view, this is that view.
116 */ 116 */
117 struct sway_container *fullscreen; 117 struct sway_container *fullscreen;
118 /** 118 /**
119 * If this container is a view, this may be set to the window's decoration 119 * If this container is a view, this may be set to the window's decoration
120 * buffer (or NULL). 120 * buffer (or NULL).
121 */ 121 */
122 unsigned char *border; 122 unsigned char *border;
123 enum swayc_border_types border_type; 123 enum swayc_border_types border_type;
124 struct wlc_geometry border_geometry; 124 struct wlc_geometry border_geometry;
125 struct wlc_geometry presumed_geometry; 125 struct wlc_geometry title_bar_geometry;
126 int border_thickness; 126 struct wlc_geometry actual_geometry;
127 int border_thickness;
127}; 128};
128 129
129enum visibility_mask { 130enum visibility_mask {