]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #2138 Cleaning and fixing some scrollbar issues
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 8 Oct 2008 11:03:38 +0000 (11:03 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 8 Oct 2008 11:03:38 +0000 (11:03 +0000)
svn changeset:5612/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/Util.java
src/com/itmill/toolkit/terminal/gwt/client/ui/IAccordion.java
src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java
src/com/itmill/toolkit/terminal/gwt/client/ui/ISplitPanel.java
src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java

index 97f92abda62d30dea4b4ac3a393437fb9b140fad..10c3bcaee0615f805d217016acead5877e1bed80 100644 (file)
@@ -9,8 +9,11 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.Timer;
 import com.google.gwt.user.client.ui.RootPanel;
 import com.google.gwt.user.client.ui.Widget;
 
@@ -242,4 +245,31 @@ public class Util {
         return detectedScrollbarSize;
     }
 
+    /**
+     * Run workaround for webkits overflow auto issue.
+     * 
+     * See: our buh #2138 and https://bugs.webkit.org/show_bug.cgi?id=21462
+     * 
+     * @param elem
+     *            with overflow auto
+     */
+    public static void runWebkitOverflowAutoFix(final Element elem) {
+        // add max version if fix landes sometime to webkit
+        if (BrowserInfo.get().getWebkitVersion() > 0) {
+            DeferredCommand.addCommand(new Command() {
+                public void execute() {
+                    // Dough, safari scoll auto means actually just a moped
+                    elem.getStyle().setProperty("overflow", "hidden");
+                    (new Timer() {
+                        @Override
+                        public void run() {
+                            elem.getStyle().setProperty("overflow", "auto");
+                        }
+                    }).schedule(1);
+                }
+            });
+        }
+
+    }
+
 }
index e73f4e5bc8ea4806edb6f78a1269ffa5e8238e78..01ede8079cfc37f37b27d4a039e2e130b79b240d 100644 (file)
@@ -10,7 +10,6 @@ import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.Element;
-import com.google.gwt.user.client.Timer;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.ComplexPanel;
 import com.google.gwt.user.client.ui.Widget;
@@ -21,6 +20,7 @@ import com.itmill.toolkit.terminal.gwt.client.ICaption;
 import com.itmill.toolkit.terminal.gwt.client.Paintable;
 import com.itmill.toolkit.terminal.gwt.client.RenderSpace;
 import com.itmill.toolkit.terminal.gwt.client.UIDL;
+import com.itmill.toolkit.terminal.gwt.client.Util;
 
 public class IAccordion extends ITabsheetBase implements
         ContainerResizedListener {
@@ -161,24 +161,8 @@ public class IAccordion extends ITabsheetBase implements
 
         client.runDescendentsLayout(item);
 
-        if (BrowserInfo.get().getWebkitVersion() > 0) {
-            final Element selectedTabContent = getSelectedStack()
-                    .getContainerElement();
-            DeferredCommand.addCommand(new Command() {
-                public void execute() {
-                    // Dough, safari scoll auto means actually just a moped
-                    selectedTabContent.getStyle().setProperty("overflow",
-                            "hidden");
-                    (new Timer() {
-                        @Override
-                        public void run() {
-                            selectedTabContent.getStyle().setProperty(
-                                    "overflow", "auto");
-                        }
-                    }).schedule(1);
-                }
-            });
-        }
+        Util.runWebkitOverflowAutoFix(getSelectedStack().getContainerElement());
+
     }
 
     /**
index d4d6719082d06665cae68232a62d14655f475606..7e4297a7bd04079655afb1b309e4e16a6591219a 100644 (file)
@@ -6,12 +6,9 @@ package com.itmill.toolkit.terminal.gwt.client.ui;
 
 import java.util.Set;
 
-import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.Timer;
 import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
@@ -306,23 +303,10 @@ public class IPanel extends SimplePanel implements Container,
             }
         }
 
-        if (BrowserInfo.get().getWebkitVersion() > 0) {
-            DeferredCommand.addCommand(new Command() {
-                public void execute() {
-                    // Dough, safari scoll auto means actually just a moped
-                    contentNode.getStyle().setProperty("overflow", "hidden");
-                    (new Timer() {
-                        @Override
-                        public void run() {
-                            contentNode.getStyle().setProperty("overflow",
-                                    "auto");
-                        }
-                    }).schedule(1);
-                }
-            });
-        }
-
         client.runDescendentsLayout(this);
+
+        Util.runWebkitOverflowAutoFix(contentNode);
+
     }
 
     @Override
index 30661d43542e511d369ac6f2b79d6b3e2d9554a9..0319b56696ae711f7d8875331d399328538d7b2b 100644 (file)
@@ -312,6 +312,10 @@ public class ISplitPanel extends ComplexPanel implements Container,
 
         renderInformation.updateSize(getElement());
 
+        // fixes scrollbars sometimes seen on webkit 528.5, but not in Safari
+        // 3.1
+        Util.runWebkitOverflowAutoFix(secondContainer);
+
     }
 
     private void setFirstWidget(Widget w) {
index cee2cebe4a03ef760d3a97aa57a3cffe957e5d98..e5e04c58a362f920c5df5b71e323b4b407311197 100644 (file)
@@ -13,19 +13,18 @@ import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.Timer;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.ComplexPanel;
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
-import com.itmill.toolkit.terminal.gwt.client.BrowserInfo;
 import com.itmill.toolkit.terminal.gwt.client.ContainerResizedListener;
 import com.itmill.toolkit.terminal.gwt.client.ICaption;
 import com.itmill.toolkit.terminal.gwt.client.Paintable;
 import com.itmill.toolkit.terminal.gwt.client.RenderInformation;
 import com.itmill.toolkit.terminal.gwt.client.RenderSpace;
 import com.itmill.toolkit.terminal.gwt.client.UIDL;
+import com.itmill.toolkit.terminal.gwt.client.Util;
 
 public class ITabsheet extends ITabsheetBase implements
         ContainerResizedListener {
@@ -394,21 +393,7 @@ public class ITabsheet extends ITabsheetBase implements
 
         updateTabScroller();
 
-        if (BrowserInfo.get().getWebkitVersion() > 0) {
-            DeferredCommand.addCommand(new Command() {
-                public void execute() {
-                    // Dough, safari scoll auto means actually just a moped
-                    contentNode.getStyle().setProperty("overflow", "hidden");
-                    (new Timer() {
-                        @Override
-                        public void run() {
-                            contentNode.getStyle().setProperty("overflow",
-                                    "auto");
-                        }
-                    }).schedule(100);
-                }
-            });
-        }
+        Util.runWebkitOverflowAutoFix(contentNode);
 
     }