aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHenri Sara <henri.sara@itmill.com>2011-04-01 09:51:41 +0000
committerHenri Sara <henri.sara@itmill.com>2011-04-01 09:51:41 +0000
commitdedbcc13457d92662499198ee9d33ff6b7ab0989 (patch)
treefa08b06924bbe090d50818c7478999b4b6e9b50e /src
parent6b1b62c7bedc5fc6cc08c511e3be5bec343faf87 (diff)
downloadvaadin-framework-dedbcc13457d92662499198ee9d33ff6b7ab0989.tar.gz
vaadin-framework-dedbcc13457d92662499198ee9d33ff6b7ab0989.zip
Merged most changes from 6.5 to 6.6
svn changeset:18071/svn branch:6.6
Diffstat (limited to 'src')
-rw-r--r--src/com/google/gwt/dom/client/VaadinDOMImplSafari.java23
-rw-r--r--src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml9
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VMenuBar.java3
3 files changed, 33 insertions, 2 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..c68f80595d
--- /dev/null
+++ b/src/com/google/gwt/dom/client/VaadinDOMImplSafari.java
@@ -0,0 +1,23 @@
+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) {
+ // Chrome returns a float in certain cases (at least when zoom != 100%).
+ // The |0 ensures it is converted to an int.
+ return super.getAbsoluteLeft(elem) | 0;
+ }
+
+ @Override
+ public int getAbsoluteTop(Element elem) {
+ // Chrome returns a float in certain cases (at least when zoom != 100%).
+ // The |0 ensures it is converted to an int.
+ 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" />
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VMenuBar.java b/src/com/vaadin/terminal/gwt/client/ui/VMenuBar.java
index 2b996d5792..56b7d198e0 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VMenuBar.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VMenuBar.java
@@ -985,7 +985,8 @@ public class VMenuBar extends SimpleFocusablePanel implements Paintable,
int widthAvailable = diff + moreItemWidth;
int widthGrowth = 0;
- while (widthAvailable > widthGrowth) {
+ while (widthAvailable > widthGrowth
+ && collapsedRootItems.getItems().size() > 0) {
// Move first item from collapsed menu to the root menu
CustomMenuItem expand = collapsedRootItems.getItems()
.get(0);