diff options
author | Henri Sara <henri.sara@itmill.com> | 2011-04-01 09:51:41 +0000 |
---|---|---|
committer | Henri Sara <henri.sara@itmill.com> | 2011-04-01 09:51:41 +0000 |
commit | dedbcc13457d92662499198ee9d33ff6b7ab0989 (patch) | |
tree | fa08b06924bbe090d50818c7478999b4b6e9b50e /src | |
parent | 6b1b62c7bedc5fc6cc08c511e3be5bec343faf87 (diff) | |
download | vaadin-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.java | 23 | ||||
-rw-r--r-- | src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml | 9 | ||||
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/VMenuBar.java | 3 |
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); |