From a7f26939c2921e5118cbd03081f71493a4a0a3fa Mon Sep 17 00:00:00 2001
From: Mikkel Oscar Lyderik <mikkeloscar@gmail.com>
Date: Sat, 9 Apr 2016 22:51:41 +0200
Subject: [PATCH 1/2] Only update geometry of single floating view

---
 sway/handlers.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sway/handlers.c b/sway/handlers.c
index f96a8e9d..f691ceda 100644
--- a/sway/handlers.c
+++ b/sway/handlers.c
@@ -354,7 +354,7 @@ static void handle_view_geometry_request(wlc_handle handle, const struct wlc_geo
 			view->height = view->desired_height;
 			view->x = geometry->origin.x;
 			view->y = geometry->origin.y;
-			arrange_windows(view->parent, -1, -1);
+			update_geometry(view);
 		}
 	}
 }

From cfea40dce3b203962a61b6f745bffebad43d19a6 Mon Sep 17 00:00:00 2001
From: Mikkel Oscar Lyderik <mikkeloscar@gmail.com>
Date: Sat, 9 Apr 2016 22:51:58 +0200
Subject: [PATCH 2/2] Don't init desired width/height on new_view

When creating a new view, wlc usually returns an initial geometry with
size 1x1. Setting those values as desired width/height causes a problem
for some windows (QT5) because they don't request a new geometry for
instance when made floating, so the floating window becomes 1x1.

To fix this problem we can just omit setting the desired width/height on
new_view and instead let the clients request a certain size if they feel
like it. e.i. gnome-calculator.

Fix #578
---
 sway/container.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/sway/container.c b/sway/container.c
index d82a1e21..6dfc608d 100644
--- a/sway/container.c
+++ b/sway/container.c
@@ -265,13 +265,10 @@ swayc_t *new_view(swayc_t *sibling, wlc_handle handle) {
 	view->visible = true;
 	view->is_focused = true;
 	view->sticky = false;
-	// Setup geometry
-	struct wlc_geometry geometry;
-	wlc_view_get_visible_geometry(handle, &geometry);
 	view->width = 0;
 	view->height = 0;
-	view->desired_width = geometry.size.w;
-	view->desired_height = geometry.size.h;
+	view->desired_width = -1;
+	view->desired_height = -1;
 	// setup border
 	view->border_type = config->border;
 	view->border_thickness = config->border_thickness;