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); + } } }