summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-04-17 11:04:57 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-04-17 11:04:57 +1000
commit143b528f71ea71393368815eecebf900ff45cf9d (patch)
treec68c826d6b2d585e053912ccf7254f9e442831da
parentDon't damage views if they're hidden by a fullscreen view. (diff)
downloadsway-143b528f71ea71393368815eecebf900ff45cf9d.tar.gz
sway-143b528f71ea71393368815eecebf900ff45cf9d.tar.zst
sway-143b528f71ea71393368815eecebf900ff45cf9d.zip
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) {
128 wl_signal_add(&shell_surface->events.destroy, &wl_shell_view->destroy); 128 wl_signal_add(&shell_surface->events.destroy, &wl_shell_view->destroy);
129 129
130 view_map(&wl_shell_view->view, shell_surface->surface); 130 view_map(&wl_shell_view->view, shell_surface->surface);
131
132 if (shell_surface->state == WLR_WL_SHELL_SURFACE_STATE_FULLSCREEN) {
133 view_set_fullscreen(&wl_shell_view->view, true);
134 }
131} 135}
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) {
212 xdg_shell_v6_view->new_popup.notify = handle_new_popup; 212 xdg_shell_v6_view->new_popup.notify = handle_new_popup;
213 wl_signal_add(&xdg_surface->events.new_popup, 213 wl_signal_add(&xdg_surface->events.new_popup,
214 &xdg_shell_v6_view->new_popup); 214 &xdg_shell_v6_view->new_popup);
215
216 if (xdg_surface->toplevel->current.fullscreen) {
217 view_set_fullscreen(view, true);
218 }
215} 219}
216 220
217static void handle_destroy(struct wl_listener *listener, void *data) { 221static 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) {
248 // Put it back into the tree 248 // Put it back into the tree
249 wlr_xwayland_surface_set_maximized(xsurface, true); 249 wlr_xwayland_surface_set_maximized(xsurface, true);
250 view_map(view, xsurface->surface); 250 view_map(view, xsurface->surface);
251
252 if (xsurface->fullscreen) {
253 view_set_fullscreen(view, true);
254 }
251} 255}
252 256
253static void handle_destroy(struct wl_listener *listener, void *data) { 257static void handle_destroy(struct wl_listener *listener, void *data) {