diff options
Diffstat (limited to 'include/container.h')
-rw-r--r-- | include/container.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/include/container.h b/include/container.h index 29d4ea12..ae57d1e3 100644 --- a/include/container.h +++ b/include/container.h @@ -2,9 +2,12 @@ #define _SWAY_CONTAINER_H #include <sys/types.h> #include <wlc/wlc.h> + +#include "list.h" + typedef struct sway_container swayc_t; -#include "layout.h" +extern swayc_t root_container; /** * Different kinds of containers. @@ -76,6 +79,12 @@ struct sway_container { double x, y; /** + * Cached geometry used to store view/container geometry when switching + * between tabbed/stacked and horizontal/vertical layouts. + */ + struct wlc_geometry cached_geometry; + + /** * False if this view is invisible. It could be in the scratchpad or on a * workspace that is not shown. */ @@ -120,7 +129,7 @@ struct sway_container { * If this container is a view, this may be set to the window's decoration * buffer (or NULL). */ - unsigned char *border; + struct border *border; enum swayc_border_types border_type; struct wlc_geometry border_geometry; struct wlc_geometry title_bar_geometry; @@ -248,6 +257,12 @@ bool swayc_is_child_of(swayc_t *child, swayc_t *parent); bool swayc_is_tabbed_stacked(swayc_t *view); /** + * Returns the top most tabbed or stacked parent container. Returns NULL if + * view is not in a tabbed/stacked layout. + */ +swayc_t *swayc_tabbed_stacked_parent(swayc_t *view); + +/** * Returns the gap (padding) of the container. * * This returns the inner gaps for a view, the outer gaps for a workspace, and |