Fixes issue 1938 by preventing window resize events from being fired with duplicate height and width values.
Review by:jlabanca
git-svn-id: https://google-web-toolkit.googlecode.com/svn/releases/1.6@4715 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/Window.java b/user/src/com/google/gwt/user/client/Window.java
index d90ed9b..9e4338f 100644
--- a/user/src/com/google/gwt/user/client/Window.java
+++ b/user/src/com/google/gwt/user/client/Window.java
@@ -397,6 +397,9 @@
private static boolean closeHandlersInitialized;
private static boolean scrollHandlersInitialized;
private static boolean resizeHandlersInitialized;
+ private static int lastResizeWidth;
+ private static int lastResizeHeight;
+
private static final WindowImpl impl = GWT.create(WindowImpl.class);
/**
@@ -767,7 +770,15 @@
private static void fireResizedImpl() {
if (resizeHandlersInitialized) {
- ResizeEvent.fire(getHandlers(), getClientWidth(), getClientHeight());
+ // On webkit and IE we sometimes get duplicate window resize events.
+ // Here, we manually filter them.
+ int width = getClientWidth();
+ int height = getClientHeight();
+ if (lastResizeWidth != width || lastResizeHeight != height) {
+ lastResizeWidth = width;
+ lastResizeHeight = height;
+ ResizeEvent.fire(getHandlers(), width, height);
+ }
}
}