diff --git a/libweston-desktop/xdg-shell-v6.c b/libweston-desktop/xdg-shell-v6.c
index 10274e0..d82a507 100644
--- a/libweston-desktop/xdg-shell-v6.c
+++ b/libweston-desktop/xdg-shell-v6.c
@@ -303,8 +303,7 @@
 };
 
 static void
-weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface,
-					      bool force);
+weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface);
 
 static void
 weston_desktop_xdg_toplevel_ensure_added(struct weston_desktop_xdg_toplevel *toplevel)
@@ -314,7 +313,7 @@
 
 	weston_desktop_api_surface_added(toplevel->base.desktop,
 					 toplevel->base.desktop_surface);
-	weston_desktop_xdg_surface_schedule_configure(&toplevel->base, true);
+	weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
 	toplevel->added = true;
 }
 
@@ -584,7 +583,7 @@
 	struct weston_desktop_xdg_toplevel *toplevel = user_data;
 
 	toplevel->pending.state.maximized = maximized;
-	weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+	weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
 }
 
 static void
@@ -594,7 +593,7 @@
 	struct weston_desktop_xdg_toplevel *toplevel = user_data;
 
 	toplevel->pending.state.fullscreen = fullscreen;
-	weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+	weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
 }
 
 static void
@@ -604,7 +603,7 @@
 	struct weston_desktop_xdg_toplevel *toplevel = user_data;
 
 	toplevel->pending.state.resizing = resizing;
-	weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+	weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
 }
 
 static void
@@ -614,7 +613,7 @@
 	struct weston_desktop_xdg_toplevel *toplevel = user_data;
 
 	toplevel->pending.state.activated = activated;
-	weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+	weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
 }
 
 static void
@@ -627,7 +626,7 @@
 	toplevel->pending.size.width = width;
 	toplevel->pending.size.height = height;
 
-	weston_desktop_xdg_surface_schedule_configure(&toplevel->base, false);
+	weston_desktop_xdg_surface_schedule_configure(&toplevel->base);
 }
 
 static void
@@ -807,7 +806,7 @@
 weston_desktop_xdg_popup_committed(struct weston_desktop_xdg_popup *popup)
 {
 	if (!popup->committed)
-		weston_desktop_xdg_surface_schedule_configure(&popup->base, true);
+		weston_desktop_xdg_surface_schedule_configure(&popup->base);
 	popup->committed = true;
 	weston_desktop_xdg_popup_update_position(popup->base.desktop_surface,
 						 popup);
@@ -904,6 +903,9 @@
 static bool
 weston_desktop_xdg_toplevel_state_compare(struct weston_desktop_xdg_toplevel *toplevel)
 {
+	if (!toplevel->base.configured)
+		return false;
+
 	if (toplevel->pending.state.activated != toplevel->current.state.activated)
 		return false;
 	if (toplevel->pending.state.fullscreen != toplevel->current.state.fullscreen)
@@ -925,20 +927,18 @@
 }
 
 static void
-weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface,
-					      bool force)
+weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface)
 {
 	struct wl_display *display = weston_desktop_get_display(surface->desktop);
 	struct wl_event_loop *loop = wl_display_get_event_loop(display);
-	bool pending_same = !force;
+	bool pending_same = false;
 
 	switch (surface->role) {
 	case WESTON_DESKTOP_XDG_SURFACE_ROLE_NONE:
 		assert(0 && "not reached");
 		break;
 	case WESTON_DESKTOP_XDG_SURFACE_ROLE_TOPLEVEL:
-		pending_same = pending_same &&
-			weston_desktop_xdg_toplevel_state_compare((struct weston_desktop_xdg_toplevel *) surface);
+		pending_same = weston_desktop_xdg_toplevel_state_compare((struct weston_desktop_xdg_toplevel *) surface);
 		break;
 	case WESTON_DESKTOP_XDG_SURFACE_ROLE_POPUP:
 		break;
