aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Dwyer <ryandwyer1@gmail.com>2018-04-17 11:04:57 +1000
committerRyan Dwyer <ryandwyer1@gmail.com>2018-04-17 11:04:57 +1000
commit143b528f71ea71393368815eecebf900ff45cf9d (patch)
treec68c826d6b2d585e053912ccf7254f9e442831da
parenta44d016e2b24a3454551c27f9252b4c419968760 (diff)
Handle fullscreen flag when mapping a surface.
-rw-r--r--sway/desktop/wl_shell.c4
-rw-r--r--sway/desktop/xdg_shell_v6.c4
-rw-r--r--sway/desktop/xwayland.c4
3 files changed, 12 insertions, 0 deletions
diff --git a/sway/desktop/wl_shell.c b/sway/desktop/wl_shell.c
index b63c220c..96332e5c 100644
--- a/sway/desktop/wl_shell.c
+++ b/sway/desktop/wl_shell.c
@@ -128,4 +128,8 @@ void handle_wl_shell_surface(struct wl_listener *listener, void *data) {
wl_signal_add(&shell_surface->events.destroy, &wl_shell_view->destroy);
view_map(&wl_shell_view->view, shell_surface->surface);
+
+ if (shell_surface->state == WLR_WL_SHELL_SURFACE_STATE_FULLSCREEN) {
+ view_set_fullscreen(&wl_shell_view->view, true);
+ }
}
diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c
index 133b60c3..731862a9 100644
--- a/sway/desktop/xdg_shell_v6.c
+++ b/sway/desktop/xdg_shell_v6.c
@@ -212,6 +212,10 @@ static void handle_map(struct wl_listener *listener, void *data) {
xdg_shell_v6_view->new_popup.notify = handle_new_popup;
wl_signal_add(&xdg_surface->events.new_popup,
&xdg_shell_v6_view->new_popup);
+
+ if (xdg_surface->toplevel->current.fullscreen) {
+ view_set_fullscreen(view, true);
+ }
}
static void handle_destroy(struct wl_listener *listener, void *data) {
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c
index 963c5a0e..46eaa84c 100644
--- a/sway/desktop/xwayland.c
+++ b/sway/desktop/xwayland.c
@@ -248,6 +248,10 @@ static void handle_map(struct wl_listener *listener, void *data) {
// Put it back into the tree
wlr_xwayland_surface_set_maximized(xsurface, true);
view_map(view, xsurface->surface);
+
+ if (xsurface->fullscreen) {
+ view_set_fullscreen(view, true);
+ }
}
static void handle_destroy(struct wl_listener *listener, void *data) {