From 2d441b3f725c065a1f3e72ed91ae2c218f954b2f Mon Sep 17 00:00:00 2001 From: Anna Koskinen Date: Fri, 24 Apr 2020 13:40:15 +0300 Subject: Don't center a window that has already been removed. (#11956) (#11969) * Don't center a window that has already been removed. (#11956) * Don't center a window that has already been removed. Fixes #11942 --- .../main/java/com/vaadin/client/ui/window/WindowConnector.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'client/src') diff --git a/client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java b/client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java index 12ce828f47..9603310e22 100644 --- a/client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java +++ b/client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java @@ -433,11 +433,17 @@ public class WindowConnector extends AbstractSingleComponentContainerConnector // This had to be here because we might not know the content size before // everything is painted into the window - // centered is this is unset on move/resize + // centered if this is unset on move/resize window.centered = state.centered; // Ensure centering before setting visible (#16486) if (window.centered && getState().windowMode != WindowMode.MAXIMIZED) { - Scheduler.get().scheduleFinally(() -> getWidget().center()); + Scheduler.get().scheduleFinally(() -> { + // the window may have got removed again before this is + // triggered, and centering would re-display it + if (getWidget().isShowing()) { + getWidget().center(); + } + }); } window.setVisible(true); } -- cgit v1.2.3