diff options
| author | Drew DeVault <sir@cmpwn.com> | 2016-04-25 11:34:27 -0400 | 
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2016-04-25 11:34:27 -0400 | 
| commit | dba1195b4452dd7497d780b5d8c0b43f361f5aab (patch) | |
| tree | 0b329d72536a75e5d960b25b4414b9d1fe4a5018 /include/container.h | |
| parent | 7efa9ab34ae1dabcc7c87d22bfba0b1312c8c662 (diff) | |
| parent | 05b4965a99417b74df13e9138b14347e7dc47685 (diff) | |
| download | sway-dba1195b4452dd7497d780b5d8c0b43f361f5aab.tar.xz | |
Merge pull request #566 from mikkeloscar/tabbed-stacking-layout
Tabbed and stacked layout
Diffstat (limited to 'include/container.h')
| -rw-r--r-- | include/container.h | 21 | 
1 files changed, 19 insertions, 2 deletions
| diff --git a/include/container.h b/include/container.h index 26da851e..d1905720 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. @@ -56,6 +59,7 @@ struct sway_container {  	enum swayc_types type;  	enum swayc_layouts layout; +	enum swayc_layouts prev_layout;  	/**  	 * Width and height of this container, without borders or gaps. @@ -75,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.  	 */ @@ -119,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; @@ -240,6 +250,13 @@ bool swayc_is_parent_of(swayc_t *parent, swayc_t *child);   * Returns true if the child is a desecendant of the parent.   */  bool swayc_is_child_of(swayc_t *child, swayc_t *parent); + +/** + * 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.   * | 
