diff options
-rw-r--r-- | include/sway/tree/view.h | 3 | ||||
-rw-r--r-- | sway/tree/view.c | 13 |
2 files changed, 12 insertions, 4 deletions
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 7362df5c..3df38e2d 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h | |||
@@ -51,6 +51,9 @@ struct sway_view { | |||
51 | double x, y; | 51 | double x, y; |
52 | int width, height; | 52 | int width, height; |
53 | 53 | ||
54 | double saved_x, saved_y; | ||
55 | int saved_width, saved_height; | ||
56 | |||
54 | // The size the view would want to be if it weren't tiled. | 57 | // The size the view would want to be if it weren't tiled. |
55 | // Used when changing a view from tiled to floating. | 58 | // Used when changing a view from tiled to floating. |
56 | int natural_width, natural_height; | 59 | int natural_width, natural_height; |
diff --git a/sway/tree/view.c b/sway/tree/view.c index 2eaa5d49..3117ded6 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c | |||
@@ -274,6 +274,10 @@ void view_set_fullscreen_raw(struct sway_view *view, bool fullscreen) { | |||
274 | view_set_fullscreen(workspace->sway_workspace->fullscreen, false); | 274 | view_set_fullscreen(workspace->sway_workspace->fullscreen, false); |
275 | } | 275 | } |
276 | workspace->sway_workspace->fullscreen = view; | 276 | workspace->sway_workspace->fullscreen = view; |
277 | view->saved_x = view->x; | ||
278 | view->saved_y = view->y; | ||
279 | view->saved_width = view->width; | ||
280 | view->saved_height = view->height; | ||
277 | view->swayc->saved_x = view->swayc->x; | 281 | view->swayc->saved_x = view->swayc->x; |
278 | view->swayc->saved_y = view->swayc->y; | 282 | view->swayc->saved_y = view->swayc->y; |
279 | view->swayc->saved_width = view->swayc->width; | 283 | view->swayc->saved_width = view->swayc->width; |
@@ -296,11 +300,12 @@ void view_set_fullscreen_raw(struct sway_view *view, bool fullscreen) { | |||
296 | } | 300 | } |
297 | } else { | 301 | } else { |
298 | workspace->sway_workspace->fullscreen = NULL; | 302 | workspace->sway_workspace->fullscreen = NULL; |
299 | view->swayc->width = view->swayc->saved_width; | ||
300 | view->swayc->height = view->swayc->saved_height; | ||
301 | if (container_is_floating(view->swayc)) { | 303 | if (container_is_floating(view->swayc)) { |
302 | view->swayc->x = view->swayc->saved_x; | 304 | view_configure(view, view->saved_x, view->saved_y, |
303 | view->swayc->y = view->swayc->saved_y; | 305 | view->saved_width, view->saved_height); |
306 | } else { | ||
307 | view->swayc->width = view->swayc->saved_width; | ||
308 | view->swayc->height = view->swayc->saved_height; | ||
304 | view_autoconfigure(view); | 309 | view_autoconfigure(view); |
305 | } | 310 | } |
306 | } | 311 | } |