summaryrefslogtreecommitdiffstats
path: root/compatibility-client
diff options
context:
space:
mode:
authorKoen De Cock <koendecock@users.noreply.github.com>2019-02-14 15:52:40 +0100
committerPekka Hyvönen <pekka@vaadin.com>2019-02-14 16:52:40 +0200
commitfd654b100be791813bcb36f6a3556f03290eb3b0 (patch)
tree569d60f4931f078d2e8fb01ed52697d3a572f9fb /compatibility-client
parent7b5f1b58539de46bae515f624ab6b23676d3fccf (diff)
downloadvaadin-framework-fd654b100be791813bcb36f6a3556f03290eb3b0.tar.gz
vaadin-framework-fd654b100be791813bcb36f6a3556f03290eb3b0.zip
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.
Diffstat (limited to 'compatibility-client')
-rw-r--r--compatibility-client/src/main/java/com/vaadin/v7/client/ui/VCheckBox.java19
1 files changed, 19 insertions, 0 deletions
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);
+ });
+ }
+ }
}