]> source.dussan.org Git - vaadin-framework.git/commitdiff
Notification fade tries to compensate for slow browsers, fixes #2381
authorMarc Englund <marc.englund@itmill.com>
Fri, 19 Dec 2008 14:00:16 +0000 (14:00 +0000)
committerMarc Englund <marc.englund@itmill.com>
Fri, 19 Dec 2008 14:00:16 +0000 (14:00 +0000)
svn changeset:6306/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/INotification.java

index abb66a2bfa43168c3f8267a7d69f429f8dc8d199..a2bca9ceb5513309abdccc405fed2decb2796759 100644 (file)
@@ -5,6 +5,7 @@
 package com.itmill.toolkit.terminal.gwt.client.ui;\r
 \r
 import java.util.ArrayList;\r
+import java.util.Date;\r
 import java.util.EventObject;\r
 import java.util.Iterator;\r
 \r
@@ -73,7 +74,7 @@ public class INotification extends IToolkitOverlay {
                     fade();\r
                 }\r
             };\r
-            delay.scheduleRepeating(delayMsec);\r
+            delay.schedule(delayMsec);\r
         } else if (delayMsec == 0) {\r
             fade();\r
         }\r
@@ -126,11 +127,15 @@ public class INotification extends IToolkitOverlay {
     public void fade() {\r
         DOM.removeEventPreview(this);\r
         cancelDelay();\r
+        final int msec = fadeMsec / (startOpacity / 5);\r
         fader = new Timer() {\r
+            long timestamp = 0;\r
             int opacity = startOpacity;\r
 \r
             public void run() {\r
-                opacity -= 5;\r
+                double adjust = (timestamp == 0 ? 1\r
+                        : (new Date().getTime() - timestamp) / msec);\r
+                opacity -= adjust * 5d;\r
                 setOpacity(getElement(), opacity);\r
                 if (opacity <= 0) {\r
                     cancel();\r
@@ -143,9 +148,9 @@ public class INotification extends IToolkitOverlay {
                     }\r
 \r
                 }\r
+                timestamp = new Date().getTime();\r
             }\r
         };\r
-        final int msec = fadeMsec / (startOpacity / 5);\r
         fader.scheduleRepeating(msec);\r
     }\r
 \r