From ed065ee06c8fd571d60e592604c26e84339d9af3 Mon Sep 17 00:00:00 2001 From: Koen De Cock Date: Thu, 14 Feb 2019 15:52:40 +0100 Subject: Fix initially selected CheckBox rendering in Safari in v7 compatibility package (#11024) (#11456) This fix was already applied to com.vaadin.client.ui.VCheckBox but the committer forget to apply the same fix to the com.vaadin.v7.client.ui.VCheckBox. Some people are still temporarely using the checkbox from the compatibility package. --- .../main/java/com/vaadin/v7/client/ui/VCheckBox.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java index 9d4d52096c..ec6e02200e 100644 --- a/compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java +++ b/compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java @@ -16,7 +16,9 @@ package com.vaadin.v7.client.ui; +import com.google.gwt.core.client.Scheduler; import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.Style; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.DOM; @@ -106,4 +108,21 @@ public class VCheckBox extends com.google.gwt.user.client.ui.CheckBox public void setAriaInvalid(boolean invalid) { AriaHelper.handleInputInvalid(getCheckBoxElement(), invalid); } + + @Override + protected void onAttach() { + super.onAttach(); + + if (BrowserInfo.get().isSafari()) { + /* + * Sometimes Safari does not render checkbox correctly when + * attaching. Setting the visibility to hidden and a bit later + * restoring will make everything just fine. + */ + getElement().getStyle().setVisibility(Style.Visibility.HIDDEN); + Scheduler.get().scheduleFinally(() -> { + getElement().getStyle().setVisibility(Style.Visibility.VISIBLE); + }); + } + } } -- cgit v1.2.3