aboutsummaryrefslogtreecommitdiff
path: root/rootston
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-03-13 19:57:21 +0100
committeremersion <contact@emersion.fr>2018-03-13 19:57:21 +0100
commite74ddaaf10f1c8078cf078f55428b9e86776ca93 (patch)
treec7a616685b4eaeb5eeacea72b36058b832e14e29 /rootston
parent125138f1a0448927c26c0f8a2761fed2df09b6ad (diff)
xdg-shell-v6: redesign the configure/ack_configure workflow
Diffstat (limited to 'rootston')
-rw-r--r--rootston/output.c3
-rw-r--r--rootston/xdg_shell_v6.c7
2 files changed, 9 insertions, 1 deletions
diff --git a/rootston/output.c b/rootston/output.c
index adcbb961..f772ea24 100644
--- a/rootston/output.c
+++ b/rootston/output.c
@@ -433,7 +433,8 @@ static void render_output(struct roots_output *output) {
float clear_color[] = {0.25f, 0.25f, 0.25f, 1.0f};
// Check if we can delegate the fullscreen surface to the output
- if (output->fullscreen_view != NULL) {
+ if (output->fullscreen_view != NULL &&
+ output->fullscreen_view->wlr_surface != NULL) {
struct roots_view *view = output->fullscreen_view;
// Make sure the view is centered on screen
diff --git a/rootston/xdg_shell_v6.c b/rootston/xdg_shell_v6.c
index c81cd16a..84c76d16 100644
--- a/rootston/xdg_shell_v6.c
+++ b/rootston/xdg_shell_v6.c
@@ -385,4 +385,11 @@ void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data) {
view->close = close;
view->destroy = destroy;
roots_surface->view = view;
+
+ if (surface->toplevel_state->next.maximized) {
+ view_maximize(view, true);
+ }
+ if (surface->toplevel_state->next.fullscreen) {
+ view_set_fullscreen(view, true, NULL);
+ }
}