aboutsummaryrefslogtreecommitdiff
path: root/include/sway/tree
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-07-22 19:25:41 +0100
committerGitHub <noreply@github.com>2018-07-22 19:25:41 +0100
commitbe60e44b7c08b87400fed0b9ea586c449883ba11 (patch)
tree5005c92ed70e19fcd9a316b9a9fad0d3ba07b6ad /include/sway/tree
parent27f65b94ae35a7b7342ed331884f765141fad373 (diff)
parentd21d4b83a3effc56b177f5d505aedfdf2ddbbbd5 (diff)
Merge pull request #2296 from RyanDwyer/floating-modifier
Implement floating_modifier and mouse operations for floating views
Diffstat (limited to 'include/sway/tree')
-rw-r--r--include/sway/tree/container.h12
-rw-r--r--include/sway/tree/layout.h9
-rw-r--r--include/sway/tree/view.h5
3 files changed, 22 insertions, 4 deletions
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index ca7a3288..59c5b4c7 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -305,6 +305,12 @@ bool container_is_floating(struct sway_container *container);
void container_get_box(struct sway_container *container, struct wlr_box *box);
/**
+ * Move a floating container by the specified amount.
+ */
+void container_floating_translate(struct sway_container *con,
+ double x_amount, double y_amount);
+
+/**
* Move a floating container to a new layout-local position.
*/
void container_floating_move_to(struct sway_container *con,
@@ -318,4 +324,10 @@ void container_set_dirty(struct sway_container *container);
bool container_has_urgent_child(struct sway_container *container);
+/**
+ * If the container is involved in a drag or resize operation via a mouse, this
+ * ends the operation.
+ */
+void container_end_mouse_operation(struct sway_container *container);
+
#endif
diff --git a/include/sway/tree/layout.h b/include/sway/tree/layout.h
index ba265623..5a78fd58 100644
--- a/include/sway/tree/layout.h
+++ b/include/sway/tree/layout.h
@@ -14,10 +14,11 @@ enum movement_direction {
};
enum resize_edge {
- RESIZE_EDGE_LEFT,
- RESIZE_EDGE_RIGHT,
- RESIZE_EDGE_TOP,
- RESIZE_EDGE_BOTTOM,
+ RESIZE_EDGE_NONE = 0,
+ RESIZE_EDGE_LEFT = 1,
+ RESIZE_EDGE_RIGHT = 2,
+ RESIZE_EDGE_TOP = 4,
+ RESIZE_EDGE_BOTTOM = 8,
};
struct sway_container;
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index 068d92c6..1dfb218b 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -26,6 +26,8 @@ enum sway_view_prop {
};
struct sway_view_impl {
+ void (*get_constraints)(struct sway_view *view, double *min_width,
+ double *max_width, double *min_height, double *max_height);
const char *(*get_string_prop)(struct sway_view *view,
enum sway_view_prop prop);
uint32_t (*get_int_prop)(struct sway_view *view, enum sway_view_prop prop);
@@ -215,6 +217,9 @@ uint32_t view_get_window_type(struct sway_view *view);
const char *view_get_shell(struct sway_view *view);
+void view_get_constraints(struct sway_view *view, double *min_width,
+ double *max_width, double *min_height, double *max_height);
+
uint32_t view_configure(struct sway_view *view, double lx, double ly, int width,
int height);