2 files changed, 6 insertions(+), 1 deletions(-)
M client.h
M dwl.c
         
        
        
M client.h => client.h +5 -1
  
@@ 112,8 112,12 @@ client_set_bounds(Client *c, int32_t width, int32_t height)
 		return 0;
 #endif
 	if (wl_resource_get_version(c->surface.xdg->toplevel->resource) >=
-			XDG_TOPLEVEL_CONFIGURE_BOUNDS_SINCE_VERSION && width >= 0 && height >= 0)
+			XDG_TOPLEVEL_CONFIGURE_BOUNDS_SINCE_VERSION && width >= 0 && height >= 0
+			&& (c->bounds.width != width || c->bounds.height != height)) {
+		c->bounds.width = width;
+		c->bounds.height = height;
 		return wlr_xdg_toplevel_set_bounds(c->surface.xdg->toplevel, width, height);
+	}
 	return 0;
 }
 
 
M dwl.c => dwl.c +1 -0
  
@@ 118,6 118,7 @@ typedef struct {
 	struct wl_listener set_title;
 	struct wl_listener fullscreen;
 	struct wlr_box prev; /* layout-relative, includes border */
+	struct wlr_box bounds;
 #ifdef XWAYLAND
 	struct wl_listener activate;
 	struct wl_listener associate;