aboutsummaryrefslogtreecommitdiff
path: root/include/sway
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-03-31 17:49:40 -0400
committeremersion <contact@emersion.fr>2018-03-31 17:49:40 -0400
commitb2c2ee693b6f1cdaeb204a1469c0fa1b775a498c (patch)
tree1fd4a806d0ab7ba780d5fb93acb741b9b1dc3f85 /include/sway
parent122b96abed9955f78e3f157167d34312f5bb551d (diff)
Introduce common functions to create, map, unmap, destroy views
Diffstat (limited to 'include/sway')
-rw-r--r--include/sway/output.h1
-rw-r--r--include/sway/tree/container.h3
-rw-r--r--include/sway/tree/view.h15
3 files changed, 15 insertions, 4 deletions
diff --git a/include/sway/output.h b/include/sway/output.h
index b4980cd8..cfe7502b 100644
--- a/include/sway/output.h
+++ b/include/sway/output.h
@@ -24,6 +24,7 @@ struct sway_output {
struct wl_listener destroy;
struct wl_listener mode;
struct wl_listener transform;
+ struct wl_listener scale;
struct wl_listener damage_destroy;
struct wl_listener damage_frame;
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index 6aa66da0..d707df17 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -70,9 +70,8 @@ struct sway_container {
enum sway_container_layout prev_layout;
enum sway_container_layout workspace_layout;
- // TODO convert to layout coordinates
+ // in output-local coordinates
double x, y;
-
// does not include borders or gaps.
double width, height;
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index 3965d2b7..82a5541b 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -4,6 +4,8 @@
#include <wlr/types/wlr_surface.h>
#include <wlr/types/wlr_xdg_shell_v6.h>
#include <wlr/xwayland.h>
+#include "sway/input/input-manager.h"
+#include "sway/input/seat.h"
struct sway_container;
struct sway_view;
@@ -94,9 +96,13 @@ struct sway_view {
} iface;
// only used for unmanaged views (shell specific)
- struct wl_list unmanaged_view_link; // sway_root::unmanaged views
+ struct wl_list unmanaged_view_link; // sway_root::unmanaged_views
};
+struct sway_view *view_create(enum sway_view_type type);
+
+void view_destroy(struct sway_view *view);
+
const char *view_get_title(struct sway_view *view);
const char *view_get_app_id(struct sway_view *view);
@@ -113,7 +119,12 @@ void view_set_activated(struct sway_view *view, bool activated);
void view_close(struct sway_view *view);
-void view_update_outputs(struct sway_view *view, const struct wlr_box *before);
+void view_map(struct sway_view *view, struct wlr_surface *wlr_surface);
+
+void view_map_unmanaged(struct sway_view *view,
+ struct wlr_surface *wlr_surface);
+
+void view_unmap(struct sway_view *view);
void view_damage_whole(struct sway_view *view);