aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-05-31 18:21:49 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-06-01 23:14:58 +1000
commita2c1cb9072b990de9181bffeb69e43f9b3030804 (patch)
tree1588d8d58a84c04fbc02f0e5701394a6ebf47de2
parentFix fullscreen position of xwayland views (diff)
downloadsway-a2c1cb9072b990de9181bffeb69e43f9b3030804.tar.gz
sway-a2c1cb9072b990de9181bffeb69e43f9b3030804.tar.zst
sway-a2c1cb9072b990de9181bffeb69e43f9b3030804.zip
Fix mpv damage issue when unfullscreening into floating
-rw-r--r--include/sway/tree/view.h3
-rw-r--r--sway/tree/view.c13
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 }