diff options
author | Tony Crisci <tony@dubstepdish.com> | 2017-12-03 10:49:13 -0500 |
---|---|---|
committer | Tony Crisci <tony@dubstepdish.com> | 2017-12-03 10:49:13 -0500 |
commit | 59db38ce17e04b19c25e06f0fd3622b2adace99f (patch) | |
tree | ad0664df06b1fd158605a5f4a26789634b9aaf5b | |
parent | Merge pull request #1489 from acrisci/feature/basic-get-tree (diff) | |
download | sway-59db38ce17e04b19c25e06f0fd3622b2adace99f.tar.gz sway-59db38ce17e04b19c25e06f0fd3622b2adace99f.tar.zst sway-59db38ce17e04b19c25e06f0fd3622b2adace99f.zip |
sway wl_shell
-rw-r--r-- | include/sway/server.h | 1 | ||||
-rw-r--r-- | include/sway/view.h | 5 | ||||
-rw-r--r-- | sway/desktop/wl_shell.c | 30 |
3 files changed, 34 insertions, 2 deletions
diff --git a/include/sway/server.h b/include/sway/server.h index b0684d15..1901e39f 100644 --- a/include/sway/server.h +++ b/include/sway/server.h | |||
@@ -42,5 +42,6 @@ void output_add_notify(struct wl_listener *listener, void *data); | |||
42 | void output_remove_notify(struct wl_listener *listener, void *data); | 42 | void output_remove_notify(struct wl_listener *listener, void *data); |
43 | 43 | ||
44 | void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data); | 44 | void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data); |
45 | void handle_wl_shell_surface(struct wl_listener *listener, void *data); | ||
45 | 46 | ||
46 | #endif | 47 | #endif |
diff --git a/include/sway/view.h b/include/sway/view.h index 2707ca78..77d451e5 100644 --- a/include/sway/view.h +++ b/include/sway/view.h | |||
@@ -29,9 +29,8 @@ enum sway_view_type { | |||
29 | 29 | ||
30 | enum sway_view_prop { | 30 | enum sway_view_prop { |
31 | VIEW_PROP_TITLE, | 31 | VIEW_PROP_TITLE, |
32 | VIEW_PROP_CLASS, | ||
33 | VIEW_PROP_INSTANCE, | ||
34 | VIEW_PROP_APP_ID, | 32 | VIEW_PROP_APP_ID, |
33 | VIEW_PROP_INSTANCE, | ||
35 | }; | 34 | }; |
36 | 35 | ||
37 | /** | 36 | /** |
@@ -46,10 +45,12 @@ struct sway_view { | |||
46 | 45 | ||
47 | union { | 46 | union { |
48 | struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6; | 47 | struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6; |
48 | struct wlr_wl_shell_surface *wlr_wl_shell_surface; | ||
49 | }; | 49 | }; |
50 | 50 | ||
51 | union { | 51 | union { |
52 | struct sway_xdg_surface_v6 *sway_xdg_surface_v6; | 52 | struct sway_xdg_surface_v6 *sway_xdg_surface_v6; |
53 | struct sway_wl_shell_surface *sway_wl_shell_surface; | ||
53 | }; | 54 | }; |
54 | 55 | ||
55 | struct { | 56 | struct { |
diff --git a/sway/desktop/wl_shell.c b/sway/desktop/wl_shell.c new file mode 100644 index 00000000..8bfa605e --- /dev/null +++ b/sway/desktop/wl_shell.c | |||
@@ -0,0 +1,30 @@ | |||
1 | #define _POSIX_C_SOURCE 199309L | ||
2 | #include <stdbool.h> | ||
3 | #include <stdlib.h> | ||
4 | #include <wayland-server.h> | ||
5 | #include <wlr/types/wlr_wl_shell.h> | ||
6 | #include "sway/container.h" | ||
7 | #include "sway/layout.h" | ||
8 | #include "sway/server.h" | ||
9 | #include "sway/view.h" | ||
10 | #include "log.h" | ||
11 | |||
12 | static bool assert_wl_shell(struct sway_view *view) { | ||
13 | return sway_assert(view->type == SWAY_WL_SHELL_VIEW, | ||
14 | "Expecting wl_shell view!"); | ||
15 | } | ||
16 | |||
17 | static const char *get_prop(struct sway_view *view, enum sway_view_prop prop) { | ||
18 | if (!assert_wl_shell(view)) { | ||
19 | return NULL; | ||
20 | } | ||
21 | switch (prop) { | ||
22 | case VIEW_PROP_TITLE: | ||
23 | return view->wlr_wl_shell_surface->title; | ||
24 | case VIEW_PROP_APP_ID: | ||
25 | return view->wlr_wl_shell_surface->class; | ||
26 | default: | ||
27 | return NULL; | ||
28 | } | ||
29 | } | ||
30 | |||