aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authorKirill Primak <vyivel@eclair.cafe>2022-08-30 19:05:38 +0300
committerSimon Ser <contact@emersion.fr>2022-12-05 18:21:04 +0000
commit097ea84cda70a71ad8ea5940b3b3d277167424e5 (patch)
tree6ef4fa33e506103aceff93e570f871bdc9217e0c /include/wlr
parent27ea18cc33c41be7a59dcd71e926345f56ca646e (diff)
output-layout: improve API
- wlr_output_layout_add{,_auto}() now return a bool indicating whether the function has succeeded. - wlr_output_layout_move() is removed. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1083
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types/wlr_output_layout.h37
1 files changed, 21 insertions, 16 deletions
diff --git a/include/wlr/types/wlr_output_layout.h b/include/wlr/types/wlr_output_layout.h
index 89066ae8..7d567579 100644
--- a/include/wlr/types/wlr_output_layout.h
+++ b/include/wlr/types/wlr_output_layout.h
@@ -28,7 +28,7 @@ struct wlr_output_layout {
struct wl_list outputs;
struct {
- struct wl_signal add;
+ struct wl_signal add; // struct wlr_output_layout_output *
struct wl_signal change;
struct wl_signal destroy;
} events;
@@ -77,14 +77,30 @@ struct wlr_output *wlr_output_layout_output_at(
/**
* Add the output to the layout at the specified coordinates. If the output is
- * already part of the output layout, this moves the output.
+ * already a part of the output layout, it will become manually configured and
+ * will be moved to the specified coordinates.
+ *
+ * Returns true on success, false on a memory allocation error.
*/
-void wlr_output_layout_add(struct wlr_output_layout *layout,
+bool wlr_output_layout_add(struct wlr_output_layout *layout,
struct wlr_output *output, int lx, int ly);
-void wlr_output_layout_move(struct wlr_output_layout *layout,
- struct wlr_output *output, int lx, int ly);
+/**
+ * Add the output to the layout as automatically configured. This will place
+ * the output in a sensible location in the layout. The coordinates of
+ * the output in the layout will be adjusted dynamically when the layout
+ * changes. If the output is already a part of the layout, it will become
+ * automatically configured.
+ *
+ * Returns true on success, false on a memory allocation error.
+ */
+bool wlr_output_layout_add_auto(struct wlr_output_layout *layout,
+ struct wlr_output *output);
+/**
+ * Remove the output from the layout. If the output is already not a part of
+ * the layout, this function is a no-op.
+ */
void wlr_output_layout_remove(struct wlr_output_layout *layout,
struct wlr_output *output);
@@ -118,17 +134,6 @@ void wlr_output_layout_get_box(struct wlr_output_layout *layout,
struct wlr_output *reference, struct wlr_box *dest_box);
/**
-* Add an auto configured output to the layout. This will place the output in a
-* sensible location in the layout. The coordinates of the output in the layout
-* may adjust dynamically when the layout changes. If the output is already in
-* the layout, it will become auto configured. If the position of the output is
-* set such as with wlr_output_layout_move(), the output will become manually
-* configured.
-*/
-void wlr_output_layout_add_auto(struct wlr_output_layout *layout,
- struct wlr_output *output);
-
-/**
* Get the output closest to the center of the layout extents.
*/
struct wlr_output *wlr_output_layout_get_center_output(