]> source.dussan.org Git - vaadin-framework.git/commitdiff
Workaround for Safari 4 issue with #6003 - Word wrap doesn't work in TextArea
authorArtur Signell <artur.signell@itmill.com>
Thu, 25 Nov 2010 14:25:55 +0000 (14:25 +0000)
committerArtur Signell <artur.signell@itmill.com>
Thu, 25 Nov 2010 14:25:55 +0000 (14:25 +0000)
svn changeset:16164/svn branch:6.5

src/com/vaadin/terminal/gwt/client/BrowserInfo.java
src/com/vaadin/terminal/gwt/client/Util.java
src/com/vaadin/terminal/gwt/client/ui/VTextField.java

index 7578d104b8b9a96d9b0566378fd92abaa8434186..8855e41594bfb57f2cbe62d118da0097c559c46f 100644 (file)
@@ -173,6 +173,10 @@ public class BrowserInfo {
         return browserDetails.isSafari();
     }
 
+    public boolean isSafari4() {
+        return isSafari() && browserDetails.getBrowserMajorVersion() == 4;
+    }
+
     public boolean isIE6() {
         return isIE() && browserDetails.getBrowserMajorVersion() == 6;
     }
index 5d4e8d1dc44b89332814303bba150692aba73cd0..ee7fd112aab67d6999c3ebb5ed450e9eea3d2550 100644 (file)
@@ -13,6 +13,7 @@ import java.util.Set;
 import com.google.gwt.core.client.Scheduler;
 import com.google.gwt.dom.client.DivElement;
 import com.google.gwt.dom.client.Document;
+import com.google.gwt.dom.client.Style;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.Element;
@@ -888,4 +889,20 @@ public class Util {
         return null;
     }
 
+    /**
+     * Force webkit to redraw an element
+     * 
+     * @param element
+     *            The element that should be redrawn
+     */
+    public static void forceWebkitRedraw(Element element) {
+        Style style = element.getStyle();
+        String s = style.getProperty("webkitTransform");
+        if (s == null || s.length() == 0) {
+            style.setProperty("webkitTransform", "scale(1)");
+        } else {
+            style.setProperty("webkitTransform", "");
+        }
+    }
+
 }
index 33639501e877454fe35841fe11c9e19d9f5e54e8..959155af234b19f1fd8549a8e838bad00ff72714 100644 (file)
@@ -5,6 +5,7 @@
 package com.vaadin.terminal.gwt.client.ui;
 
 import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.dom.client.Style;
 import com.google.gwt.dom.client.Style.Overflow;
 import com.google.gwt.event.dom.client.BlurEvent;
 import com.google.gwt.event.dom.client.BlurHandler;
@@ -563,6 +564,10 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
             getElement().setAttribute("wrap", "off");
             getElement().getStyle().setOverflow(Overflow.AUTO);
         }
+        if (BrowserInfo.get().isSafari4()) {
+            // Force redraw as Safari 4 does not properly update the screen
+            Util.forceWebkitRedraw(getElement());
+        }
         wordwrap = enabled;
     }
 }