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;
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);
 		}
 	}
 }