window: Set frame flags immediately when we handle the new states in configure
diff --git a/clients/window.c b/clients/window.c
index 7d88345..1d58ad2 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -2129,12 +2129,6 @@
 		interior.width = width;
 		interior.height = height;
 	} else {
-		if (widget->window->maximized) {
-			frame_set_flag(frame->frame, FRAME_FLAG_MAXIMIZED);
-		} else {
-			frame_unset_flag(frame->frame, FRAME_FLAG_MAXIMIZED);
-		}
-
 		frame_resize(frame->frame, width, height);
 		frame_interior(frame->frame, &interior.x, &interior.y,
 			       &interior.width, &interior.height);
@@ -2202,12 +2196,6 @@
 	if (window->fullscreen)
 		return;
 
-	if (window->focused) {
-		frame_set_flag(frame->frame, FRAME_FLAG_ACTIVE);
-	} else {
-		frame_unset_flag(frame->frame, FRAME_FLAG_ACTIVE);
-	}
-
 	cr = widget_cairo_create(widget);
 
 	frame_repaint(frame->frame, cr);
@@ -3891,6 +3879,20 @@
 		}
 	}
 
+	if (window->frame) {
+		if (window->maximized) {
+			frame_set_flag(window->frame->frame, FRAME_FLAG_MAXIMIZED);
+		} else {
+			frame_unset_flag(window->frame->frame, FRAME_FLAG_MAXIMIZED);
+		}
+
+		if (window->focused) {
+			frame_set_flag(window->frame->frame, FRAME_FLAG_ACTIVE);
+		} else {
+			frame_unset_flag(window->frame->frame, FRAME_FLAG_ACTIVE);
+		}
+	}
+
 	window->next_attach_serial = serial;
 
 	if (window->state_changed_handler)