From 6cd1954d4f6367f71482827b89ca4ecc1bf6741a Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Fri, 19 Dec 2008 14:00:16 +0000 Subject: [PATCH] Notification fade tries to compensate for slow browsers, fixes #2381 svn changeset:6306/svn branch:trunk --- .../toolkit/terminal/gwt/client/ui/INotification.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/INotification.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/INotification.java index abb66a2bfa..a2bca9ceb5 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/INotification.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/INotification.java @@ -5,6 +5,7 @@ package com.itmill.toolkit.terminal.gwt.client.ui; import java.util.ArrayList; +import java.util.Date; import java.util.EventObject; import java.util.Iterator; @@ -73,7 +74,7 @@ public class INotification extends IToolkitOverlay { fade(); } }; - delay.scheduleRepeating(delayMsec); + delay.schedule(delayMsec); } else if (delayMsec == 0) { fade(); } @@ -126,11 +127,15 @@ public class INotification extends IToolkitOverlay { public void fade() { DOM.removeEventPreview(this); cancelDelay(); + final int msec = fadeMsec / (startOpacity / 5); fader = new Timer() { + long timestamp = 0; int opacity = startOpacity; public void run() { - opacity -= 5; + double adjust = (timestamp == 0 ? 1 + : (new Date().getTime() - timestamp) / msec); + opacity -= adjust * 5d; setOpacity(getElement(), opacity); if (opacity <= 0) { cancel(); @@ -143,9 +148,9 @@ public class INotification extends IToolkitOverlay { } } + timestamp = new Date().getTime(); } }; - final int msec = fadeMsec / (startOpacity / 5); fader.scheduleRepeating(msec); } -- 2.39.5