summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2011-03-31 06:16:12 +0000
committerArtur Signell <artur.signell@itmill.com>2011-03-31 06:16:12 +0000
commit95ec3d17bebff391a6899da17d006c14582a3080 (patch)
treeff3e093129c40cf7631f0e5a306f7802be570f78
parent27a59cf0543259efaedc31776f0c288d834e7b8f (diff)
downloadvaadin-framework-95ec3d17bebff391a6899da17d006c14582a3080.tar.gz
vaadin-framework-95ec3d17bebff391a6899da17d006c14582a3080.zip
Ugly workaround for #6682 that ensures getAbsoluteTop/getAbsoluteLeft always return an integer for Webkit
svn changeset:18040/svn branch:6.5
-rw-r--r--src/com/google/gwt/dom/client/VaadinDOMImplSafari.java19
-rw-r--r--src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml9
2 files changed, 27 insertions, 1 deletions
diff --git a/src/com/google/gwt/dom/client/VaadinDOMImplSafari.java b/src/com/google/gwt/dom/client/VaadinDOMImplSafari.java
new file mode 100644
index 0000000000..deb9efbaec
--- /dev/null
+++ b/src/com/google/gwt/dom/client/VaadinDOMImplSafari.java
@@ -0,0 +1,19 @@
+package com.google.gwt.dom.client;
+
+/**
+ * Overridden to workaround GWT issue #6194. Remove this when updating to a
+ * newer GWT that fixes the problem (2.3.0 possibly). Must be in this package as
+ * the whole DOMImpl hierarchy is package private and I really did not want to
+ * copy all the parent classes into this one...
+ */
+class VaadinDOMImplSafari extends DOMImplSafari {
+ @Override
+ public int getAbsoluteLeft(Element elem) {
+ return super.getAbsoluteLeft(elem) | 0;
+ }
+
+ @Override
+ public int getAbsoluteTop(Element elem) {
+ return super.getAbsoluteTop(elem) | 0;
+ }
+}
diff --git a/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml b/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml
index 929d35f364..66ab7202ed 100644
--- a/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml
+++ b/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml
@@ -12,7 +12,8 @@
<source path="client" />
- <!-- Use own Scheduler implementation to be able to track if commands are running -->
+ <!-- Use own Scheduler implementation to be able to track if commands are
+ running -->
<replace-with class="com.vaadin.terminal.gwt.client.VSchedulerImpl">
<when-type-is class="com.google.gwt.core.client.impl.SchedulerImpl" />
</replace-with>
@@ -51,6 +52,12 @@
</any>
</replace-with>
+ <!-- Workaround for #6682. Remove when fixed in GWT. -->
+ <replace-with class="com.google.gwt.dom.client.VaadinDOMImplSafari">
+ <when-type-is class="com.google.gwt.dom.client.DOMImpl" />
+ <when-property-is name="user.agent" value="safari" />
+ </replace-with>
+
<entry-point class="com.vaadin.terminal.gwt.client.ApplicationConfiguration" />