summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-05-13 13:45:15 -0400
committerLibravatar GitHub <noreply@github.com>2018-05-13 13:45:15 -0400
commitb2dec1236837f0c441a9fd6162b6294c52fac5e0 (patch)
tree6710b0e9261285f22df2751a1404b05371cff000 /include
parentAdd pixman to swayidle deps (diff)
parentAdd xdg-shell stable support (diff)
downloadsway-b2dec1236837f0c441a9fd6162b6294c52fac5e0.tar.gz
sway-b2dec1236837f0c441a9fd6162b6294c52fac5e0.tar.zst
sway-b2dec1236837f0c441a9fd6162b6294c52fac5e0.zip
Merge pull request #1970 from emersion/xdg-shell-stable
Add xdg-shell stable support
Diffstat (limited to 'include')
-rw-r--r--include/sway/server.h5
-rw-r--r--include/sway/tree/view.h27
2 files changed, 32 insertions, 0 deletions
diff --git a/include/sway/server.h b/include/sway/server.h
index ac685bf8..d04ea896 100644
--- a/include/sway/server.h
+++ b/include/sway/server.h
@@ -8,6 +8,7 @@
8#include <wlr/types/wlr_data_device.h> 8#include <wlr/types/wlr_data_device.h>
9#include <wlr/types/wlr_layer_shell.h> 9#include <wlr/types/wlr_layer_shell.h>
10#include <wlr/types/wlr_xdg_shell_v6.h> 10#include <wlr/types/wlr_xdg_shell_v6.h>
11#include <wlr/types/wlr_xdg_shell.h>
11#include <wlr/render/wlr_renderer.h> 12#include <wlr/render/wlr_renderer.h>
12// TODO WLR: make Xwayland optional 13// TODO WLR: make Xwayland optional
13#include <wlr/xwayland.h> 14#include <wlr/xwayland.h>
@@ -33,6 +34,9 @@ struct sway_server {
33 struct wlr_xdg_shell_v6 *xdg_shell_v6; 34 struct wlr_xdg_shell_v6 *xdg_shell_v6;
34 struct wl_listener xdg_shell_v6_surface; 35 struct wl_listener xdg_shell_v6_surface;
35 36
37 struct wlr_xdg_shell *xdg_shell;
38 struct wl_listener xdg_shell_surface;
39
36 struct wlr_xwayland *xwayland; 40 struct wlr_xwayland *xwayland;
37 struct wlr_xcursor_manager *xcursor_manager; 41 struct wlr_xcursor_manager *xcursor_manager;
38 struct wl_listener xwayland_surface; 42 struct wl_listener xwayland_surface;
@@ -52,6 +56,7 @@ void handle_new_output(struct wl_listener *listener, void *data);
52 56
53void handle_layer_shell_surface(struct wl_listener *listener, void *data); 57void handle_layer_shell_surface(struct wl_listener *listener, void *data);
54void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data); 58void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data);
59void handle_xdg_shell_surface(struct wl_listener *listener, void *data);
55void handle_xwayland_surface(struct wl_listener *listener, void *data); 60void handle_xwayland_surface(struct wl_listener *listener, void *data);
56void handle_wl_shell_surface(struct wl_listener *listener, void *data); 61void handle_wl_shell_surface(struct wl_listener *listener, void *data);
57 62
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index 8091fe0c..17e579c8 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -12,6 +12,7 @@ struct sway_container;
12enum sway_view_type { 12enum sway_view_type {
13 SWAY_VIEW_WL_SHELL, 13 SWAY_VIEW_WL_SHELL,
14 SWAY_VIEW_XDG_SHELL_V6, 14 SWAY_VIEW_XDG_SHELL_V6,
15 SWAY_VIEW_XDG_SHELL,
15 SWAY_VIEW_XWAYLAND, 16 SWAY_VIEW_XWAYLAND,
16}; 17};
17 18
@@ -54,6 +55,7 @@ struct sway_view {
54 55
55 union { 56 union {
56 struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6; 57 struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6;
58 struct wlr_xdg_surface *wlr_xdg_surface;
57 struct wlr_xwayland_surface *wlr_xwayland_surface; 59 struct wlr_xwayland_surface *wlr_xwayland_surface;
58 struct wlr_wl_shell_surface *wlr_wl_shell_surface; 60 struct wlr_wl_shell_surface *wlr_wl_shell_surface;
59 }; 61 };
@@ -82,6 +84,22 @@ struct sway_xdg_shell_v6_view {
82 int pending_width, pending_height; 84 int pending_width, pending_height;
83}; 85};
84 86
87struct sway_xdg_shell_view {
88 struct sway_view view;
89
90 struct wl_listener commit;
91 struct wl_listener request_move;
92 struct wl_listener request_resize;
93 struct wl_listener request_maximize;
94 struct wl_listener request_fullscreen;
95 struct wl_listener new_popup;
96 struct wl_listener map;
97 struct wl_listener unmap;
98 struct wl_listener destroy;
99
100 int pending_width, pending_height;
101};
102
85struct sway_xwayland_view { 103struct sway_xwayland_view {
86 struct sway_view view; 104 struct sway_view view;
87 105
@@ -156,6 +174,15 @@ struct sway_xdg_popup_v6 {
156 struct wl_listener destroy; 174 struct wl_listener destroy;
157}; 175};
158 176
177struct sway_xdg_popup {
178 struct sway_view_child child;
179
180 struct wlr_xdg_surface *wlr_xdg_surface;
181
182 struct wl_listener new_popup;
183 struct wl_listener destroy;
184};
185
159const char *view_get_title(struct sway_view *view); 186const char *view_get_title(struct sway_view *view);
160 187
161const char *view_get_app_id(struct sway_view *view); 188const char *view_get_app_id(struct sway_view *view);