summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2016-08-17 23:02:37 +0300
committerVaadin Code Review <review@vaadin.com>2016-08-18 11:03:05 +0000
commit0081286c8d05c3751803181230092bd4b1e769f7 (patch)
tree654556f869e08289a2b3099174c2f4c1e759a37a /client
parentc9f95347c3d601ab45d49283c1463271f3fc66ab (diff)
downloadvaadin-framework-0081286c8d05c3751803181230092bd4b1e769f7.tar.gz
vaadin-framework-0081286c8d05c3751803181230092bd4b1e769f7.zip
Remove IE8-IE10 client side code
Change-Id: I2ca0b41c3cc2ed851646ced2e0693a93b1853c95
Diffstat (limited to 'client')
-rw-r--r--client/src/main/java/com/vaadin/client/BrowserInfo.java4
-rw-r--r--client/src/main/java/com/vaadin/client/LayoutManager.java24
-rw-r--r--client/src/main/java/com/vaadin/client/LayoutManagerIE8.java115
-rw-r--r--client/src/main/java/com/vaadin/client/MouseEventDetailsBuilder.java3
-rw-r--r--client/src/main/java/com/vaadin/client/Util.java17
-rw-r--r--client/src/main/java/com/vaadin/client/VTooltip.java3
-rw-r--r--client/src/main/java/com/vaadin/client/WidgetUtil.java65
-rw-r--r--client/src/main/java/com/vaadin/client/communication/MessageHandler.java4
-rw-r--r--client/src/main/java/com/vaadin/client/connectors/JavaScriptRendererConnector.java12
-rw-r--r--client/src/main/java/com/vaadin/client/debug/internal/InfoSection.java13
-rw-r--r--client/src/main/java/com/vaadin/client/debug/internal/theme/DebugWindowStyles.java4
-rw-r--r--client/src/main/java/com/vaadin/client/extensions/ResponsiveConnector.java39
-rw-r--r--client/src/main/java/com/vaadin/client/ui/JsniMousewheelHandler.java7
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VAbsoluteLayout.java12
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VButton.java19
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VContextMenu.java2
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VFilterSelect.java63
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VLabel.java13
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VMenuBar.java2
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VOverlay.java13
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VPopupCalendar.java2
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VPopupView.java2
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VScrollTable.java9
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VSlider.java2
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VTextArea.java3
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VTree.java4
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VUI.java10
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VUpload.java3
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VWindow.java54
-rw-r--r--client/src/main/java/com/vaadin/client/ui/orderedlayout/Slot.java36
-rw-r--r--client/src/main/java/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java19
-rw-r--r--client/src/main/java/com/vaadin/client/ui/table/TableConnector.java18
-rw-r--r--client/src/main/java/com/vaadin/client/ui/tree/TreeConnector.java7
-rw-r--r--client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java15
-rw-r--r--client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java7
-rw-r--r--client/src/main/java/com/vaadin/client/widgets/Escalator.java95
-rw-r--r--client/src/main/java/com/vaadin/client/widgets/Grid.java37
-rw-r--r--client/src/main/java/com/vaadin/client/widgets/Overlay.java414
-rw-r--r--client/src/main/resources/com/vaadin/Vaadin.gwt.xml10
-rw-r--r--client/src/main/resources/com/vaadin/VaadinBrowserSpecificOverrides.gwt.xml47
-rw-r--r--client/src/test/java/com/vaadin/client/VBrowserDetailsUserAgentParserTest.java112
41 files changed, 159 insertions, 1181 deletions
diff --git a/client/src/main/java/com/vaadin/client/BrowserInfo.java b/client/src/main/java/com/vaadin/client/BrowserInfo.java
index 6a9a7a6508..01bb7188bb 100644
--- a/client/src/main/java/com/vaadin/client/BrowserInfo.java
+++ b/client/src/main/java/com/vaadin/client/BrowserInfo.java
@@ -253,14 +253,17 @@ public class BrowserInfo {
return browserDetails.isSafari();
}
+ @Deprecated
public boolean isIE8() {
return isIE() && getBrowserMajorVersion() == 8;
}
+ @Deprecated
public boolean isIE9() {
return isIE() && getBrowserMajorVersion() == 9;
}
+ @Deprecated
public boolean isIE10() {
return isIE() && getBrowserMajorVersion() == 10;
}
@@ -517,3 +520,4 @@ public class BrowserInfo {
return (getBrowserMajorVersion() > majorVersion);
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/LayoutManager.java b/client/src/main/java/com/vaadin/client/LayoutManager.java
index 4995c9cb70..f29bc0e01d 100644
--- a/client/src/main/java/com/vaadin/client/LayoutManager.java
+++ b/client/src/main/java/com/vaadin/client/LayoutManager.java
@@ -162,8 +162,8 @@ public class LayoutManager {
}
/**
- * Assigns a measured size to an element. Method defined as protected to
- * allow separate implementation for IE8.
+ * Assigns a measured size to an element. Method defined as protected for
+ * legacy reasons.
*
* @param element
* the dom element to attach the measured size to
@@ -182,8 +182,8 @@ public class LayoutManager {
}-*/;
/**
- * Gets the measured size for an element. Method defined as protected to
- * allow separate implementation for IE8.
+ * Gets the measured size for an element. Method defined as protected for
+ * legacy reasons.
*
* @param element
* The element to get measured size for
@@ -281,8 +281,8 @@ public class LayoutManager {
/**
* Called once per iteration in the layout loop before size calculations so
- * different browsers quirks can be handled. Mainly this is currently for
- * the IE8 permutation.
+ * different browsers quirks can be handled. Mainly this exists for legacy
+ * reasons.
*/
protected void performBrowserLayoutHacks() {
// Permutations implement this
@@ -600,8 +600,6 @@ public class LayoutManager {
}
Profiler.leave("layout PostLayoutListener");
- cleanMeasuredSizes();
-
getLogger().info("Total layout phase time: "
+ totalDuration.elapsedMillis() + "ms");
}
@@ -800,8 +798,7 @@ public class LayoutManager {
private void setNeedsOverflowFix(ComponentConnector connector) {
// IE9 doesn't need the original fix, but for some reason it needs this
- if (BrowserInfo.get().requiresOverflowAutoFix()
- || BrowserInfo.get().isIE9()) {
+ if (BrowserInfo.get().requiresOverflowAutoFix()) {
ComponentConnector scrollingBoundary = currentDependencyTree
.getScrollingBoundary(connector);
if (scrollingBoundary != null) {
@@ -1822,12 +1819,6 @@ public class LayoutManager {
everythingNeedsMeasure = true;
}
- /**
- * Clean measured sizes which are no longer needed. Only for IE8.
- */
- public void cleanMeasuredSizes() {
- }
-
private static Logger getLogger() {
return Logger.getLogger(LayoutManager.class.getName());
}
@@ -1855,3 +1846,4 @@ public class LayoutManager {
return false;
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/LayoutManagerIE8.java b/client/src/main/java/com/vaadin/client/LayoutManagerIE8.java
deleted file mode 100644
index ad6aeb9c15..0000000000
--- a/client/src/main/java/com/vaadin/client/LayoutManagerIE8.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.client;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import com.google.gwt.dom.client.Document;
-import com.google.gwt.dom.client.Element;
-import com.google.gwt.dom.client.Node;
-import com.google.gwt.user.client.ui.RootPanel;
-
-/**
- * Alternative MeasuredSize storage for IE8. Storing any information in a DOM
- * element in IE8 seems to make the browser think the element has changed in a
- * way that requires a reflow. To work around that, the MeasureData is instead
- * stored in Map for IE8.
- *
- * This implementation is injected for IE8 by a replace-with definition in the
- * GWT module.
- *
- * @author Vaadin Ltd
- * @since 7.0.0
- */
-public class LayoutManagerIE8 extends LayoutManager {
-
- private Map<Element, MeasuredSize> measuredSizes = new HashMap<Element, MeasuredSize>();
-
- // this method is needed to test for memory leaks (see
- // LayoutMemoryUsageIE8ExtensionConnector) but can be private
- private int getMeasuredSizesMapSize() {
- return measuredSizes.size();
- }
-
- @Override
- protected void setMeasuredSize(Element element, MeasuredSize measuredSize) {
- if (measuredSize != null) {
- measuredSizes.put(element, measuredSize);
- } else {
- measuredSizes.remove(element);
- }
- // clear any values that are saved to the element
- if (super.getMeasuredSize(element, null) != null) {
- super.setMeasuredSize(element, null);
- }
- }
-
- @Override
- protected MeasuredSize getMeasuredSize(Element element,
- MeasuredSize defaultSize) {
- MeasuredSize measured = measuredSizes.get(element);
- if (measured != null) {
- return measured;
- } else {
- // check if saved to the element instead
- MeasuredSize measuredSize = super.getMeasuredSize(element, null);
- if (measuredSize != null) {
- // move the value back to the map
- setMeasuredSize(element, measuredSize);
- return measuredSize;
- }
- return defaultSize;
- }
- }
-
- @Override
- public void cleanMeasuredSizes() {
- Profiler.enter("LayoutManager.cleanMeasuredSizes");
-
- // #12688: IE8 was leaking memory when adding&removing components.
- // Uses IE specific logic to figure if an element has been removed from
- // DOM or not. For removed elements the measured size is stored within
- // the element in case the element gets re-attached.
- Node rootNode = Document.get().getBody();
-
- Iterator<Element> i = measuredSizes.keySet().iterator();
- while (i.hasNext()) {
- Element e = i.next();
- if (!rootNode.isOrHasChild(e)) {
- // Store in element in case is still needed.
- // Not attached, so reflow isn't a problem.
- super.setMeasuredSize(e, measuredSizes.get(e));
- i.remove();
- }
- }
-
- Profiler.leave("LayoutManager.cleanMeasuredSizes");
- }
-
- @Override
- protected void performBrowserLayoutHacks() {
- Profiler.enter("LayoutManagerIE8.performBrowserLayoutHacks");
- /*
- * Fixes IE8 issues where IE8 sometimes forgets to update the size of
- * the containing element. To force a reflow by modifying the magical
- * zoom property.
- */
- WidgetUtil.forceIE8Redraw(RootPanel.get().getElement());
- Profiler.leave("LayoutManagerIE8.performBrowserLayoutHacks");
- }
-}
diff --git a/client/src/main/java/com/vaadin/client/MouseEventDetailsBuilder.java b/client/src/main/java/com/vaadin/client/MouseEventDetailsBuilder.java
index f91f33be01..50f9a98f6e 100644
--- a/client/src/main/java/com/vaadin/client/MouseEventDetailsBuilder.java
+++ b/client/src/main/java/com/vaadin/client/MouseEventDetailsBuilder.java
@@ -66,7 +66,7 @@ public class MouseEventDetailsBuilder {
} else if (evt.getButton() == NativeEvent.BUTTON_MIDDLE) {
mouseEventDetails.setButton(MouseButton.MIDDLE);
} else {
- // IE8 does not always report a button. Assume left.
+ // No button reported? Assume left.
mouseEventDetails.setButton(MouseButton.LEFT);
}
mouseEventDetails.setAltKey(evt.getAltKey());
@@ -94,3 +94,4 @@ public class MouseEventDetailsBuilder {
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/Util.java b/client/src/main/java/com/vaadin/client/Util.java
index 13e6fd1cc0..8cfd8547a8 100644
--- a/client/src/main/java/com/vaadin/client/Util.java
+++ b/client/src/main/java/com/vaadin/client/Util.java
@@ -670,22 +670,6 @@ public class Util {
}
/**
- * Performs a hack to trigger a re-layout in the IE8. This is usually
- * necessary in cases where IE8 "forgets" to update child elements when they
- * resize.
- *
- * @deprecated As of 7.4.0, use {@link WidgetUtil#forceIE8Redraw(Element)}
- * instead.
- *
- * @param e
- * The element to perform the hack on
- */
- @Deprecated
- public static final void forceIE8Redraw(Element e) {
- WidgetUtil.forceIE8Redraw(e);
- }
-
- /**
* Performs a hack to trigger a re-layout in the IE browser. This is usually
* necessary in cases where IE "forgets" to update child elements when they
* resize.
@@ -1276,3 +1260,4 @@ public class Util {
return Logger.getLogger(Util.class.getName());
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/VTooltip.java b/client/src/main/java/com/vaadin/client/VTooltip.java
index ea5bf02e39..21a3287442 100644
--- a/client/src/main/java/com/vaadin/client/VTooltip.java
+++ b/client/src/main/java/com/vaadin/client/VTooltip.java
@@ -83,14 +83,13 @@ public class VTooltip extends VOverlay {
* @see ApplicationConnection#getVTooltip()
*/
public VTooltip() {
- super(false, false, true);
+ super(false, false); // no autohide, not modal
setStyleName(CLASSNAME);
FlowPanel layout = new FlowPanel();
setWidget(layout);
layout.add(em);
DOM.setElementProperty(description, "className", CLASSNAME + "-text");
DOM.appendChild(layout.getElement(), description);
- setSinkShadowEvents(true);
// When a tooltip is shown, the content of the tooltip changes. With a
// tooltip being a live-area, this change is notified to a assistive
diff --git a/client/src/main/java/com/vaadin/client/WidgetUtil.java b/client/src/main/java/com/vaadin/client/WidgetUtil.java
index 42e26c359e..1bd270dba3 100644
--- a/client/src/main/java/com/vaadin/client/WidgetUtil.java
+++ b/client/src/main/java/com/vaadin/client/WidgetUtil.java
@@ -32,7 +32,6 @@ import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.dom.client.Node;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.dom.client.Style;
-import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.dom.client.Touch;
import com.google.gwt.event.dom.client.KeyEvent;
@@ -112,8 +111,6 @@ public class WidgetUtil {
public static native Element getElementFromPoint(int clientX, int clientY)
/*-{
var el = $wnd.document.elementFromPoint(clientX, clientY);
- // Call elementFromPoint two times to make sure IE8 also returns something sensible if the application is running in an iframe
- el = $wnd.document.elementFromPoint(clientX, clientY);
if(el != null && el.nodeType == 3) {
el = el.parentNode;
}
@@ -144,12 +141,6 @@ public class WidgetUtil {
public static String escapeHTML(String html) {
DOM.setInnerText(escapeHtmlHelper, html);
String escapedText = DOM.getInnerHTML(escapeHtmlHelper);
- if (BrowserInfo.get().isIE8()) {
- // #7478 IE8 "incorrectly" returns "<br>" for newlines set using
- // setInnerText. The same for " " which is converted to "&nbsp;"
- escapedText = escapedText.replaceAll("<(BR|br)>", "\n");
- escapedText = escapedText.replaceAll("&nbsp;", " ");
- }
return escapedText;
}
@@ -545,7 +536,7 @@ public class WidgetUtil {
public static int getRequiredWidth(
com.google.gwt.dom.client.Element element) {
int reqWidth = getRequiredWidthBoundingClientRect(element);
- if (BrowserInfo.get().isIE() && !BrowserInfo.get().isIE8()) {
+ if (BrowserInfo.get().isIE()) {
int csSize = getRequiredWidthComputedStyle(element);
if (csSize == reqWidth + 1) {
// If computed style reports one pixel larger than requiredWidth
@@ -572,7 +563,7 @@ public class WidgetUtil {
public static double getRequiredWidthDouble(
com.google.gwt.dom.client.Element element) {
double reqWidth = getRequiredWidthBoundingClientRectDouble(element);
- if (BrowserInfo.get().isIE() && !BrowserInfo.get().isIE8()) {
+ if (BrowserInfo.get().isIE()) {
double csWidth = getRequiredWidthComputedStyleDouble(element);
if (csWidth > reqWidth && csWidth <= (reqWidth + 1)) {
// IE9 rounds reqHeight to integers BUT sometimes reports wrong
@@ -596,7 +587,7 @@ public class WidgetUtil {
public static int getRequiredHeight(
com.google.gwt.dom.client.Element element) {
int reqHeight = getRequiredHeightBoundingClientRect(element);
- if (BrowserInfo.get().isIE() && !BrowserInfo.get().isIE8()) {
+ if (BrowserInfo.get().isIE()) {
int csSize = getRequiredHeightComputedStyle(element);
if (csSize == reqHeight + 1) {
// If computed style reports one pixel larger than
@@ -623,7 +614,7 @@ public class WidgetUtil {
public static double getRequiredHeightDouble(
com.google.gwt.dom.client.Element element) {
double reqHeight = getRequiredHeightBoundingClientRectDouble(element);
- if (BrowserInfo.get().isIE() && !BrowserInfo.get().isIE8()) {
+ if (BrowserInfo.get().isIE()) {
double csHeight = getRequiredHeightComputedStyleDouble(element);
if (csHeight > reqHeight && csHeight <= (reqHeight + 1)) {
// IE9 rounds reqHeight to integers BUT sometimes reports wrong
@@ -693,7 +684,7 @@ public class WidgetUtil {
return @com.vaadin.client.WidgetUtil::getRequiredHeightBoundingClientRectDouble(Lcom/google/gwt/dom/client/Element;)(element);
}
var height = parseFloat(heightPx); // Will automatically skip "px" suffix
- var border = parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth); // Will automatically skip "px" suffix
+ var border = parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth); // Will automatically skip "px" suffix
var padding = parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom); // Will automatically skip "px" suffix
return height+border+padding;
}-*/;
@@ -898,20 +889,6 @@ public class WidgetUtil {
}
/**
- * Performs a hack to trigger a re-layout in the IE8. This is usually
- * necessary in cases where IE8 "forgets" to update child elements when they
- * resize.
- *
- * @param e
- * The element to perform the hack on
- */
- public static final void forceIE8Redraw(Element e) {
- if (BrowserInfo.get().isIE8()) {
- forceIERedraw(e);
- }
- }
-
- /**
* Performs a hack to trigger a re-layout in the IE browser. This is usually
* necessary in cases where IE "forgets" to update child elements when they
* resize.
@@ -1259,25 +1236,9 @@ public class WidgetUtil {
* @return the corresponding absolute URL as a string
*/
public static String getAbsoluteUrl(String url) {
- if (BrowserInfo.get().isIE8()) {
- // The hard way - must use innerHTML and attach to DOM in IE8
- DivElement divElement = Document.get().createDivElement();
- divElement.getStyle().setDisplay(Display.NONE);
-
- RootPanel.getBodyElement().appendChild(divElement);
- divElement.setInnerHTML(
- "<a href='" + escapeAttribute(url) + "' ></a>");
-
- AnchorElement a = divElement.getChild(0).cast();
- String href = a.getHref();
-
- RootPanel.getBodyElement().removeChild(divElement);
- return href;
- } else {
- AnchorElement a = Document.get().createAnchorElement();
- a.setHref(url);
- return a.getHref();
- }
+ AnchorElement a = Document.get().createAnchorElement();
+ a.setHref(url);
+ return a.getHref();
}
/**
@@ -1681,7 +1642,6 @@ public class WidgetUtil {
var cloneElement = element.cloneNode(false);
cloneElement.style.boxSizing ="content-box";
parentElement.appendChild(cloneElement);
- cloneElement.style.height = "10px"; // IE8 wants the height to be set to something...
var heightWithBorder = cloneElement.offsetHeight;
for (i=0; i< borderNames.length; i++) {
cloneElement.style[borderNames[i]] = "0";
@@ -1732,14 +1692,6 @@ public class WidgetUtil {
}
private static double roundSize(double size, boolean roundUp) {
- if (BrowserInfo.get().isIE8()) {
- if (roundUp) {
- return Math.ceil(size);
- } else {
- return (int) size;
- }
- }
-
double factor = getSubPixelRoundingFactor();
if (factor < 0 || size < 0) {
return size;
@@ -1823,3 +1775,4 @@ public class WidgetUtil {
return integerPart + ((int) nrFractions) / divisor;
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/communication/MessageHandler.java b/client/src/main/java/com/vaadin/client/communication/MessageHandler.java
index c3adc61f5d..f3c84c39c3 100644
--- a/client/src/main/java/com/vaadin/client/communication/MessageHandler.java
+++ b/client/src/main/java/com/vaadin/client/communication/MessageHandler.java
@@ -614,8 +614,6 @@ public class MessageHandler {
// Unregister all the old connectors that have now been removed
unregisterRemovedConnectors(
connectorHierarchyUpdateResult.detachedConnectorIds);
-
- getLayoutManager().cleanMeasuredSizes();
}
private void updateCaptions(
@@ -1374,7 +1372,7 @@ public class MessageHandler {
if (connector instanceof AbstractConnector) {
// optimization as the loop setting properties is very
- // slow, especially on IE8
+ // slow
replaceState((AbstractConnector) connector,
defaultState);
} else {
diff --git a/client/src/main/java/com/vaadin/client/connectors/JavaScriptRendererConnector.java b/client/src/main/java/com/vaadin/client/connectors/JavaScriptRendererConnector.java
index 8217d89a68..0194678ef1 100644
--- a/client/src/main/java/com/vaadin/client/connectors/JavaScriptRendererConnector.java
+++ b/client/src/main/java/com/vaadin/client/connectors/JavaScriptRendererConnector.java
@@ -21,7 +21,6 @@ import java.util.Collection;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArrayString;
import com.google.gwt.dom.client.NativeEvent;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.JavaScriptConnectorHelper;
import com.vaadin.client.Util;
import com.vaadin.client.communication.HasJavaScriptConnectorHelper;
@@ -51,8 +50,7 @@ public class JavaScriptRendererConnector
private final JavaScriptConnectorHelper helper = new JavaScriptConnectorHelper(
this);
- private final JavaScriptObject cellReferenceWrapper = createCellReferenceWrapper(
- BrowserInfo.get().isIE8());
+ private final JavaScriptObject cellReferenceWrapper = createCellReferenceWrapper();
@Override
protected void init() {
@@ -62,14 +60,9 @@ public class JavaScriptRendererConnector
addGetRowKey(helper.getConnectorWrapper());
}
- private static native JavaScriptObject createCellReferenceWrapper(
- boolean isIE8)
+ private static native JavaScriptObject createCellReferenceWrapper()
/*-{
var reference = {};
- if (isIE8) {
- // IE8 only supports defineProperty for DOM objects
- reference = $doc.createElement('div');
- }
var setProperty = function(name, getter, setter) {
var descriptor = {
@@ -282,3 +275,4 @@ public class JavaScriptRendererConnector
return helper;
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/debug/internal/InfoSection.java b/client/src/main/java/com/vaadin/client/debug/internal/InfoSection.java
index d0a66cd490..7abd83b43b 100644
--- a/client/src/main/java/com/vaadin/client/debug/internal/InfoSection.java
+++ b/client/src/main/java/com/vaadin/client/debug/internal/InfoSection.java
@@ -197,15 +197,9 @@ public class InfoSection implements Section {
.getAtmosphereVersion();
String jsVersion = applicationConfiguration.getAtmosphereJSVersion();
- String themeVersion;
- boolean themeOk;
- if (com.vaadin.client.BrowserInfo.get().isIE8()) {
- themeVersion = "<IE8 can't detect this>";
- themeOk = true;
- } else {
- themeVersion = getThemeVersion();
- themeOk = equalsEither(themeVersion, clientVersion, servletVersion);
- }
+ String themeVersion = getThemeVersion();
+ boolean themeOk = equalsEither(themeVersion, clientVersion,
+ servletVersion);
boolean clientOk = equalsEither(clientVersion, servletVersion,
themeVersion);
@@ -318,3 +312,4 @@ public class InfoSection implements Section {
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/debug/internal/theme/DebugWindowStyles.java b/client/src/main/java/com/vaadin/client/debug/internal/theme/DebugWindowStyles.java
index 899ccf3643..1f19744252 100644
--- a/client/src/main/java/com/vaadin/client/debug/internal/theme/DebugWindowStyles.java
+++ b/client/src/main/java/com/vaadin/client/debug/internal/theme/DebugWindowStyles.java
@@ -27,7 +27,7 @@ public interface DebugWindowStyles extends ClientBundle {
@NotStrict
public CssResource css();
- // Can't embed because IE8 doesn't support datauri for fonts (images only)
+ // Could embed
@Source("font.eot")
@DoNotEmbed
DataResource iconFontEot();
@@ -46,4 +46,4 @@ public interface DebugWindowStyles extends ClientBundle {
@DoNotEmbed
DataResource iconFontSvg();
-} \ No newline at end of file
+}
diff --git a/client/src/main/java/com/vaadin/client/extensions/ResponsiveConnector.java b/client/src/main/java/com/vaadin/client/extensions/ResponsiveConnector.java
index cc3fc7937c..d2b8d797b4 100644
--- a/client/src/main/java/com/vaadin/client/extensions/ResponsiveConnector.java
+++ b/client/src/main/java/com/vaadin/client/extensions/ResponsiveConnector.java
@@ -20,8 +20,6 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import com.google.gwt.core.client.JavaScriptObject;
-import com.google.gwt.dom.client.Element;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.LayoutManager;
import com.vaadin.client.ServerConnector;
import com.vaadin.client.communication.StateChangeEvent;
@@ -206,7 +204,6 @@ public class ResponsiveConnector extends AbstractExtensionConnector
// Get all the rulesets from the stylesheet
var theRules = new Array();
var IEOrEdge = @com.vaadin.client.BrowserInfo::get()().@com.vaadin.client.BrowserInfo::isIE()() || @com.vaadin.client.BrowserInfo::get()().@com.vaadin.client.BrowserInfo::isEdge()();
- var IE8 = @com.vaadin.client.BrowserInfo::get()().@com.vaadin.client.BrowserInfo::isIE8()();
try {
if (sheet.cssRules) {
@@ -221,18 +218,6 @@ public class ResponsiveConnector extends AbstractExtensionConnector
return;
}
- // Special import handling for IE8
- if (IE8) {
- try {
- for(var i = 0, len = sheet.imports.length; i < len; i++) {
- @com.vaadin.client.extensions.ResponsiveConnector::searchStylesheetForBreakPoints(Lcom/google/gwt/core/client/JavaScriptObject;)(sheet.imports[i]);
- }
- } catch(e) {
- // This is added due to IE8 failing to handle imports of some sheets for unknown reason (throws a permission denied exception)
- @com.vaadin.client.extensions.ResponsiveConnector::error(Ljava/lang/String;)("Failed to handle imports of CSS style sheet: " + sheet.href);
- }
- }
-
// Loop through the rulesets
for(var i = 0, len = theRules.length; i < len; i++) {
var rule = theRules[i];
@@ -353,8 +338,6 @@ public class ResponsiveConnector extends AbstractExtensionConnector
int width = layoutManager.getOuterWidth(element);
int height = layoutManager.getOuterHeight(element);
- boolean forceRedraw = false;
-
String oldWidthRanges = currentWidthRanges;
String oldHeightRanges = currentHeightRanges;
@@ -363,7 +346,6 @@ public class ResponsiveConnector extends AbstractExtensionConnector
if (!"".equals(currentWidthRanges)) {
element.setAttribute("width-range", currentWidthRanges);
- forceRedraw = true;
} else {
element.removeAttribute("width-range");
}
@@ -373,15 +355,10 @@ public class ResponsiveConnector extends AbstractExtensionConnector
if (!"".equals(currentHeightRanges)) {
element.setAttribute("height-range", currentHeightRanges);
- forceRedraw = true;
} else {
element.removeAttribute("height-range");
}
- if (forceRedraw) {
- forceRedrawIfIE8(element);
- }
-
// If a new breakpoint is triggered, ensure all sizes are updated in
// case some new styles are applied
if (!currentWidthRanges.equals(oldWidthRanges)
@@ -391,21 +368,6 @@ public class ResponsiveConnector extends AbstractExtensionConnector
}
}
- /**
- * Forces IE8 to reinterpret CSS rules.
- * {@link com.vaadin.client.WidgetUtil#forceIE8Redraw(com.google.gwt.dom.client.Element)}
- * doesn't work in this case.
- *
- * @param element
- * the element to redraw
- */
- private void forceRedrawIfIE8(Element element) {
- if (BrowserInfo.get().isIE8()) {
- element.addClassName("foo");
- element.removeClassName("foo");
- }
- }
-
private native String resolveBreakpoint(String which, int size)
/*-{
@@ -447,3 +409,4 @@ public class ResponsiveConnector extends AbstractExtensionConnector
}-*/;
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/JsniMousewheelHandler.java b/client/src/main/java/com/vaadin/client/ui/JsniMousewheelHandler.java
index 76105b21a9..7806f43985 100644
--- a/client/src/main/java/com/vaadin/client/ui/JsniMousewheelHandler.java
+++ b/client/src/main/java/com/vaadin/client/ui/JsniMousewheelHandler.java
@@ -59,9 +59,6 @@ abstract class JsniMousewheelHandler {
// FireFox likes "wheel", while others use "mousewheel"
var eventName = 'onmousewheel' in element ? 'mousewheel' : 'wheel';
element.addEventListener(eventName, this.@com.vaadin.client.ui.JsniMousewheelHandler::mousewheelListenerFunction);
- } else {
- // IE8
- element.attachEvent("onmousewheel", this.@com.vaadin.client.ui.JsniMousewheelHandler::mousewheelListenerFunction);
}
}-*/;
@@ -71,10 +68,8 @@ abstract class JsniMousewheelHandler {
// FireFox likes "wheel", while others use "mousewheel"
var eventName = element.onwheel===undefined?"mousewheel":"wheel";
element.removeEventListener(eventName, this.@com.vaadin.client.ui.JsniMousewheelHandler::mousewheelListenerFunction);
- } else {
- // IE8
- element.detachEvent("onmousewheel", this.@com.vaadin.client.ui.JsniMousewheelHandler::mousewheelListenerFunction);
}
}-*/;
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/VAbsoluteLayout.java b/client/src/main/java/com/vaadin/client/ui/VAbsoluteLayout.java
index c4ad444348..f9b2ca585c 100644
--- a/client/src/main/java/com/vaadin/client/ui/VAbsoluteLayout.java
+++ b/client/src/main/java/com/vaadin/client/ui/VAbsoluteLayout.java
@@ -448,16 +448,7 @@ public class VAbsoluteLayout extends ComplexPanel {
}
// ensure ne values
Style style = getElement().getStyle();
- /*
- * IE8 dies when nulling zIndex, even in IE7 mode. All other css
- * properties (and even in older IE's) accept null values just
- * fine. Assign empty string instead of null.
- */
- if (zIndex != null) {
- style.setProperty("zIndex", zIndex);
- } else {
- style.setProperty("zIndex", "");
- }
+ style.setProperty("zIndex", zIndex);
style.setProperty("top", top);
style.setProperty("left", left);
style.setProperty("right", right);
@@ -506,3 +497,4 @@ public class VAbsoluteLayout extends ComplexPanel {
}
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/VButton.java b/client/src/main/java/com/vaadin/client/ui/VButton.java
index edc0e08875..93e807d148 100644
--- a/client/src/main/java/com/vaadin/client/ui/VButton.java
+++ b/client/src/main/java/com/vaadin/client/ui/VButton.java
@@ -205,14 +205,6 @@ public class VButton extends FocusWidget implements ClickHandler {
DOM.setCapture(getElement());
isCapturing = true;
addStyleName(CLASSNAME_PRESSED);
-
- if (BrowserInfo.get().isIE8() || BrowserInfo.get().isIE9()) {
- /*
- * We need to prevent the default behavior on these browsers
- * since user-select is not available.
- */
- event.preventDefault();
- }
}
break;
case Event.ONMOUSEUP:
@@ -225,12 +217,6 @@ public class VButton extends FocusWidget implements ClickHandler {
}
removeStyleName(CLASSNAME_PRESSED);
-
- // Explicitly prevent IE 8 from propagating mouseup events
- // upward (fixes #6753)
- if (BrowserInfo.get().isIE8()) {
- event.stopPropagation();
- }
}
break;
case Event.ONMOUSEMOVE:
@@ -433,7 +419,7 @@ public class VButton extends FocusWidget implements ClickHandler {
private static native int getHorizontalBorderAndPaddingWidth(Element elem)
/*-{
// THIS METHOD IS ONLY USED FOR INTERNET EXPLORER, IT DOESN'T WORK WITH OTHERS
-
+
var convertToPixel = function(elem, value) {
// From the awesome hack by Dean Edwards
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
@@ -452,7 +438,7 @@ public class VButton extends FocusWidget implements ClickHandler {
return ret;
}
-
+
var ret = 0;
var sides = ["Right","Left"];
@@ -482,3 +468,4 @@ public class VButton extends FocusWidget implements ClickHandler {
}-*/;
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/VContextMenu.java b/client/src/main/java/com/vaadin/client/ui/VContextMenu.java
index d68afccc59..09e1f5be8c 100644
--- a/client/src/main/java/com/vaadin/client/ui/VContextMenu.java
+++ b/client/src/main/java/com/vaadin/client/ui/VContextMenu.java
@@ -81,7 +81,7 @@ public class VContextMenu extends VOverlay implements SubPartAware {
* to be set as an owner of menu
*/
public VContextMenu() {
- super(true, false, true);
+ super(true, false);
setWidget(menu);
setStyleName("v-contextmenu");
getElement().setId(DOM.createUniqueId());
diff --git a/client/src/main/java/com/vaadin/client/ui/VFilterSelect.java b/client/src/main/java/com/vaadin/client/ui/VFilterSelect.java
index de8f870175..44cbcf28f6 100644
--- a/client/src/main/java/com/vaadin/client/ui/VFilterSelect.java
+++ b/client/src/main/java/com/vaadin/client/ui/VFilterSelect.java
@@ -31,7 +31,6 @@ import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NativeEvent;
-import com.google.gwt.dom.client.Node;
import com.google.gwt.dom.client.Style;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.dom.client.Style.Unit;
@@ -348,7 +347,7 @@ public class VFilterSelect extends Composite
* Default constructor
*/
SuggestionPopup() {
- super(true, false, true);
+ super(true, false);
debug("VFS.SP: constructor()");
setOwner(VFilterSelect.this);
menu = new SuggestionMenu();
@@ -469,15 +468,6 @@ public class VFilterSelect extends Composite
.clearWidth();
setPopupPositionAndShow(popup);
- // Fix for #14173
- // IE9 and IE10 have a bug, when resize an a element with
- // box-shadow.
- // IE9 and IE10 need explicit update to remove extra
- // box-shadows
- if (BrowserInfo.get().isIE9()
- || BrowserInfo.get().isIE10()) {
- forceReflow();
- }
}
});
}
@@ -857,10 +847,6 @@ public class VFilterSelect extends Composite
menu.setWidth(Window.getClientWidth() + "px");
}
- if (BrowserInfo.get().isIE()
- && BrowserInfo.get().getBrowserMajorVersion() < 10) {
- setTdWidth(menu.getElement(), Window.getClientWidth() - 8);
- }
}
setPopupPosition(left, top);
@@ -904,44 +890,6 @@ public class VFilterSelect extends Composite
width = WidgetUtil.escapeAttribute(suggestionPopupWidth);
}
menu.setWidth(width);
-
- // IE8 or 9?
- if (BrowserInfo.get().isIE()
- && BrowserInfo.get().getBrowserMajorVersion() < 10) {
- // using legacy mode?
- if (suggestionPopupWidth == null) {
- // set the TD widths manually as these browsers do not
- // respect display: block; width:100% rules
- setTdWidth(menu.getElement(), naturalMenuWidth);
- } else {
- int compensation = WidgetUtil
- .measureHorizontalPaddingAndBorder(
- menu.getElement(), 4);
- setTdWidth(menu.getElement(),
- menu.getOffsetWidth() - compensation);
- }
-
- }
- }
-
- /**
- * Descends to child elements until finds TD elements and sets their
- * width in pixels. Can be used to workaround IE8 & 9 TD element
- * display: block issues
- *
- * @param parent
- * @param width
- */
- private void setTdWidth(Node parent, int width) {
- for (int i = 0; i < parent.getChildCount(); i++) {
- Node child = parent.getChild(i);
- if ("td".equals(child.getNodeName().toLowerCase())) {
- ((Element) child).getStyle().setWidth(width, Unit.PX);
- } else {
- setTdWidth(child, width);
- }
-
- }
}
/**
@@ -1119,13 +1067,6 @@ public class VFilterSelect extends Composite
isFirstIteration = false;
}
- if (suggestionPopupWidth != null && BrowserInfo.get().isIE()
- && BrowserInfo.get().getBrowserMajorVersion() < 10) {
- // set TD width to a low value so that they won't mandate the
- // suggestion pop-up width
- suggestionPopup.setTdWidth(suggestionPopup.menu.getElement(),
- 1);
- }
}
/**
@@ -2058,7 +1999,7 @@ public class VFilterSelect extends Composite
}
private void afterSelectedItemIconChange() {
- if (BrowserInfo.get().isWebkit() || BrowserInfo.get().isIE8()) {
+ if (BrowserInfo.get().isWebkit()) {
// Some browsers need a nudge to reposition the text field
forceReflow();
}
diff --git a/client/src/main/java/com/vaadin/client/ui/VLabel.java b/client/src/main/java/com/vaadin/client/ui/VLabel.java
index dadaac73ee..fbea5e7ffe 100644
--- a/client/src/main/java/com/vaadin/client/ui/VLabel.java
+++ b/client/src/main/java/com/vaadin/client/ui/VLabel.java
@@ -18,10 +18,8 @@ package com.vaadin.client.ui;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.HTML;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.Util;
import com.vaadin.client.VTooltip;
-import com.vaadin.client.WidgetUtil;
public class VLabel extends HTML {
@@ -59,14 +57,5 @@ public class VLabel extends HTML {
}
}
- @Override
- public void setText(String text) {
- if (BrowserInfo.get().isIE8()) {
- // #3983 - IE8 incorrectly replaces \n with <br> so we do the
- // escaping manually and set as HTML
- super.setHTML(WidgetUtil.escapeHTML(text));
- } else {
- super.setText(text);
- }
- }
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/VMenuBar.java b/client/src/main/java/com/vaadin/client/ui/VMenuBar.java
index 9698c9de07..84b56d75b2 100644
--- a/client/src/main/java/com/vaadin/client/ui/VMenuBar.java
+++ b/client/src/main/java/com/vaadin/client/ui/VMenuBar.java
@@ -646,7 +646,7 @@ public class VMenuBar extends SimpleFocusablePanel
* @return overlay to use
*/
protected VOverlay createOverlay() {
- return new VOverlay(true, false, true);
+ return new VOverlay(true, false);
}
private int adjustPopupHeight(int top, final int shadowSpace) {
diff --git a/client/src/main/java/com/vaadin/client/ui/VOverlay.java b/client/src/main/java/com/vaadin/client/ui/VOverlay.java
index e3e8b95af1..2263004451 100644
--- a/client/src/main/java/com/vaadin/client/ui/VOverlay.java
+++ b/client/src/main/java/com/vaadin/client/ui/VOverlay.java
@@ -21,9 +21,7 @@ import java.util.logging.Logger;
import com.google.gwt.aria.client.Roles;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
-import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.vaadin.client.ApplicationConnection;
import com.vaadin.client.ComponentConnector;
@@ -44,7 +42,7 @@ import com.vaadin.client.widgets.Overlay;
* directly.
*/
@Deprecated
-public class VOverlay extends Overlay implements CloseHandler<PopupPanel> {
+public class VOverlay extends Overlay {
/*
* ApplicationConnection that this overlay belongs to, which is needed to
@@ -67,15 +65,6 @@ public class VOverlay extends Overlay implements CloseHandler<PopupPanel> {
super(autoHide, modal);
}
- /**
- * @deprecated See main JavaDoc for VOverlay. Use the other constructors
- * without the <code>showShadow</code> parameter.
- */
- @Deprecated
- public VOverlay(boolean autoHide, boolean modal, boolean showShadow) {
- super(autoHide, modal, showShadow);
- }
-
/*
* A "thread local" of sorts, set temporarily so that VOverlayImpl knows
* which VOverlay is using it, so that it can be attached to the correct
diff --git a/client/src/main/java/com/vaadin/client/ui/VPopupCalendar.java b/client/src/main/java/com/vaadin/client/ui/VPopupCalendar.java
index c2b61c4868..cc7d1a9820 100644
--- a/client/src/main/java/com/vaadin/client/ui/VPopupCalendar.java
+++ b/client/src/main/java/com/vaadin/client/ui/VPopupCalendar.java
@@ -174,7 +174,7 @@ public class VPopupCalendar extends VTextualDate
}
});
- popup = new VOverlay(true, false, true);
+ popup = new VOverlay(true, false);
popup.setOwner(this);
FlowPanel wrapper = new FlowPanel();
diff --git a/client/src/main/java/com/vaadin/client/ui/VPopupView.java b/client/src/main/java/com/vaadin/client/ui/VPopupView.java
index e551eb7a29..e8499a96c1 100644
--- a/client/src/main/java/com/vaadin/client/ui/VPopupView.java
+++ b/client/src/main/java/com/vaadin/client/ui/VPopupView.java
@@ -245,7 +245,7 @@ public class VPopupView extends HTML
private ShortcutActionHandler shortcutActionHandler;
public CustomPopup() {
- super(true, false, true); // autoHide, not modal, dropshadow
+ super(true, false); // autoHide, not modal
setOwner(VPopupView.this);
// Delegate popup keyboard events to the relevant handler. The
// events do not propagate automatically because the popup is
diff --git a/client/src/main/java/com/vaadin/client/ui/VScrollTable.java b/client/src/main/java/com/vaadin/client/ui/VScrollTable.java
index d42eb6f85f..6e5909ee49 100644
--- a/client/src/main/java/com/vaadin/client/ui/VScrollTable.java
+++ b/client/src/main/java/com/vaadin/client/ui/VScrollTable.java
@@ -85,7 +85,6 @@ import com.vaadin.client.ConnectorMap;
import com.vaadin.client.DeferredWorker;
import com.vaadin.client.Focusable;
import com.vaadin.client.HasChildMeasurementHintConnector.ChildMeasurementHint;
-import com.vaadin.client.legacy.ui.VLegacyTextField;
import com.vaadin.client.MouseEventDetailsBuilder;
import com.vaadin.client.StyleConstants;
import com.vaadin.client.TooltipInfo;
@@ -94,6 +93,7 @@ import com.vaadin.client.Util;
import com.vaadin.client.VConsole;
import com.vaadin.client.VTooltip;
import com.vaadin.client.WidgetUtil;
+import com.vaadin.client.legacy.ui.VLegacyTextField;
import com.vaadin.client.ui.VScrollTable.VScrollTableBody.VScrollTableRow;
import com.vaadin.client.ui.dd.DDUtil;
import com.vaadin.client.ui.dd.VAbstractDropHandler;
@@ -3656,12 +3656,6 @@ public class VScrollTable extends FlowPanel
}
} else {
c.setText(caption);
- if (BrowserInfo.get().isIE10()) {
- // IE10 can some times define min-height to include
- // padding when setting the text...
- // See https://dev.vaadin.com/ticket/15169
- WidgetUtil.forceIERedraw(c.getElement());
- }
}
c.setSorted(false);
@@ -8416,3 +8410,4 @@ public class VScrollTable extends FlowPanel
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/VSlider.java b/client/src/main/java/com/vaadin/client/ui/VSlider.java
index ac2363b362..920ffec832 100644
--- a/client/src/main/java/com/vaadin/client/ui/VSlider.java
+++ b/client/src/main/java/com/vaadin/client/ui/VSlider.java
@@ -64,7 +64,7 @@ public class VSlider extends SimpleFocusablePanel
protected SliderOrientation orientation = SliderOrientation.HORIZONTAL;
private final HTML feedback = new HTML("", false);
- private final VOverlay feedbackPopup = new VOverlay(true, false, true) {
+ private final VOverlay feedbackPopup = new VOverlay(true, false) {
{
setOwner(VSlider.this);
}
diff --git a/client/src/main/java/com/vaadin/client/ui/VTextArea.java b/client/src/main/java/com/vaadin/client/ui/VTextArea.java
index 574c50887c..00094914d0 100644
--- a/client/src/main/java/com/vaadin/client/ui/VTextArea.java
+++ b/client/src/main/java/com/vaadin/client/ui/VTextArea.java
@@ -231,7 +231,7 @@ public class VTextArea extends VLegacyTextField implements DragImageModifier {
if (info.isSafari()) {
return true;
}
- if (info.isIE10() || info.isIE11() || info.isEdge()) {
+ if (info.isIE11() || info.isEdge()) {
return true;
}
if (info.isAndroid()) {
@@ -335,3 +335,4 @@ public class VTextArea extends VLegacyTextField implements DragImageModifier {
}
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/VTree.java b/client/src/main/java/com/vaadin/client/ui/VTree.java
index 7bf1d5cf9b..f9101a5e30 100644
--- a/client/src/main/java/com/vaadin/client/ui/VTree.java
+++ b/client/src/main/java/com/vaadin/client/ui/VTree.java
@@ -2260,10 +2260,8 @@ public class VTree extends FocusElementPanel
* Tell LayoutManager that a layout is needed later for this VTree
*/
private void doLayout() {
- // IE8 needs a hack to measure the tree again after update
- WidgetUtil.forceIE8Redraw(getElement());
-
// This calls LayoutManager setNeedsMeasure and layoutNow
Util.notifyParentOfSizeChange(this, false);
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/VUI.java b/client/src/main/java/com/vaadin/client/ui/VUI.java
index e1e8f670a5..585631a6b6 100644
--- a/client/src/main/java/com/vaadin/client/ui/VUI.java
+++ b/client/src/main/java/com/vaadin/client/ui/VUI.java
@@ -35,7 +35,6 @@ import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.SimplePanel;
import com.vaadin.client.ApplicationConnection;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.ComponentConnector;
import com.vaadin.client.ConnectorMap;
import com.vaadin.client.Focusable;
@@ -369,16 +368,11 @@ public class VUI extends SimplePanel implements ResizeHandler,
*/
private void triggerSizeChangeCheck() {
/*
- * IE (pre IE9 at least) will give us some false resize events due to
- * problems with scrollbars. Firefox 3 might also produce some extra
- * events. We postpone both the re-layouting and the server side event
- * for a while to deal with these issues.
- *
- * We may also postpone these events to avoid slowness when resizing the
+ * We may postpone these events to avoid slowness when resizing the
* browser window. Constantly recalculating the layout causes the resize
* operation to be really slow with complex layouts.
*/
- boolean lazy = resizeLazy || BrowserInfo.get().isIE8();
+ boolean lazy = resizeLazy;
if (lazy) {
delayedResizeExecutor.trigger();
diff --git a/client/src/main/java/com/vaadin/client/ui/VUpload.java b/client/src/main/java/com/vaadin/client/ui/VUpload.java
index 1d038dfb3d..676d3a4a00 100644
--- a/client/src/main/java/com/vaadin/client/ui/VUpload.java
+++ b/client/src/main/java/com/vaadin/client/ui/VUpload.java
@@ -160,8 +160,6 @@ public class VUpload extends SimplePanel {
private static native void setEncoding(Element form, String encoding)
/*-{
form.enctype = encoding;
- // For IE8
- form.encoding = encoding;
}-*/;
/** For internal use only. May be removed or replaced in the future. */
@@ -393,3 +391,4 @@ public class VUpload extends SimplePanel {
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/VWindow.java b/client/src/main/java/com/vaadin/client/ui/VWindow.java
index 922cfa515b..c3d9e7eddf 100644
--- a/client/src/main/java/com/vaadin/client/ui/VWindow.java
+++ b/client/src/main/java/com/vaadin/client/ui/VWindow.java
@@ -32,8 +32,6 @@ import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NativeEvent;
-import com.google.gwt.dom.client.Style;
-import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.dom.client.Style.Position;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.dom.client.Style.Visibility;
@@ -211,9 +209,7 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
});
public VWindow() {
- super(false, false, true); // no autohide, not modal, shadow
- // Different style of shadow for windows
- setShadowStyle("window");
+ super(false, false); // no autohide, not modal
Roles.getDialogRole().set(getElement());
Roles.getDialogRole().setAriaRelevantProperty(getElement(),
@@ -224,9 +220,7 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
contentPanel.addKeyDownHandler(this);
contentPanel.addFocusHandler(this);
contentPanel.addBlurHandler(this);
- if (!BrowserInfo.get().isIE8() && !BrowserInfo.get().isIE9()) {
- addTransitionEndLayoutListener(getElement());
- }
+ addTransitionEndLayoutListener(getElement());
}
@@ -249,20 +243,6 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
* state.
*/
setTabStopEnabled(doTabStop);
-
- // Fix for #14413. Any pseudo elements inside these elements are not
- // visible on initial render unless we shake the DOM.
- if (BrowserInfo.get().isIE8()) {
- closeBox.getStyle().setDisplay(Display.NONE);
- maximizeRestoreBox.getStyle().setDisplay(Display.NONE);
- Scheduler.get().scheduleFinally(new Command() {
- @Override
- public void execute() {
- closeBox.getStyle().clearDisplay();
- maximizeRestoreBox.getStyle().clearDisplay();
- }
- });
- }
}
@Override
@@ -673,23 +653,6 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
@Override
public void hide() {
-
- /*
- * If the window has a RichTextArea and the RTA is focused at the time
- * of hiding in IE8 only the window will have some problems returning
- * the focus to the correct place. Curiously the focus will be returned
- * correctly if clicking on the "close" button in the window header but
- * closing the window from a button for example in the window will fail.
- * Symptom described in #10776
- *
- * The problematic part is that for the focus to be returned correctly
- * an input element needs to be focused in the root panel. Focusing some
- * other element apparently won't work.
- */
- if (BrowserInfo.get().isIE8()) {
- fixIE8FocusCaptureIssue();
- }
-
if (vaadinModality) {
hideModalityCurtain();
}
@@ -706,19 +669,6 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner,
focusTopmostModalWindow();
}
- private void fixIE8FocusCaptureIssue() {
- Element e = DOM.createInputText();
- Style elemStyle = e.getStyle();
- elemStyle.setPosition(Position.ABSOLUTE);
- elemStyle.setTop(-10, Unit.PX);
- elemStyle.setWidth(0, Unit.PX);
- elemStyle.setHeight(0, Unit.PX);
-
- contentPanel.getElement().appendChild(e);
- e.focus();
- contentPanel.getElement().removeChild(e);
- }
-
/** For internal use only. May be removed or replaced in the future. */
public void setVaadinModality(boolean modality) {
vaadinModality = modality;
diff --git a/client/src/main/java/com/vaadin/client/ui/orderedlayout/Slot.java b/client/src/main/java/com/vaadin/client/ui/orderedlayout/Slot.java
index e95e8e6e05..0f4fb0f816 100644
--- a/client/src/main/java/com/vaadin/client/ui/orderedlayout/Slot.java
+++ b/client/src/main/java/com/vaadin/client/ui/orderedlayout/Slot.java
@@ -27,14 +27,12 @@ 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.vaadin.client.BrowserInfo;
import com.vaadin.client.LayoutManager;
import com.vaadin.client.StyleConstants;
import com.vaadin.client.WidgetUtil;
import com.vaadin.client.ui.FontIcon;
import com.vaadin.client.ui.Icon;
import com.vaadin.client.ui.ImageIcon;
-import com.vaadin.client.ui.layout.ElementResizeEvent;
import com.vaadin.client.ui.layout.ElementResizeListener;
import com.vaadin.shared.ui.AlignmentInfo;
@@ -64,22 +62,6 @@ public class Slot extends SimplePanel {
private ElementResizeListener spacingResizeListener;
- /*
- * This listener is applied only in IE8 to workaround browser issue where
- * IE8 forgets to update the error indicator position when the slot gets
- * resized by widget resizing itself. #11693
- */
- private ElementResizeListener ie8CaptionElementResizeUpdateListener = new ElementResizeListener() {
-
- @Override
- public void onElementResize(ElementResizeEvent e) {
- Element caption = getCaptionElement();
- if (caption != null) {
- WidgetUtil.forceIE8Redraw(caption);
- }
- }
- };
-
// Caption is placed after component unless there is some part which
// moves it above.
private CaptionPosition captionPosition = CaptionPosition.RIGHT;
@@ -176,10 +158,6 @@ public class Slot extends SimplePanel {
spacingResizeListener);
}
- if (BrowserInfo.get().isIE8()) {
- lm.addElementResizeListener(getWidget().getElement(),
- ie8CaptionElementResizeUpdateListener);
- }
}
}
@@ -204,10 +182,6 @@ public class Slot extends SimplePanel {
spacingResizeListener);
}
- if (BrowserInfo.get().isIE8()) {
- lm.removeElementResizeListener(getWidget().getElement(),
- ie8CaptionElementResizeUpdateListener);
- }
}
}
@@ -672,13 +646,8 @@ public class Slot extends SimplePanel {
}
}
};
- if (BrowserInfo.get().isIE8()) {
- // IE8 can't fix the focus immediately. It will fail.
- focusTimer.schedule(25);
- } else {
- // Newer IE versions can handle things immediately.
- focusTimer.run();
- }
+ // Newer IE versions can handle things immediately.
+ focusTimer.run();
}
}
}
@@ -831,3 +800,4 @@ public class Slot extends SimplePanel {
}
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java b/client/src/main/java/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java
index b6f3644552..a8c1f3ac3d 100644
--- a/client/src/main/java/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java
+++ b/client/src/main/java/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java
@@ -30,11 +30,9 @@ import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.RequiresResize;
import com.google.gwt.user.client.ui.Widget;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.LayoutManager;
import com.vaadin.client.Profiler;
import com.vaadin.client.Util;
-import com.vaadin.client.WidgetUtil;
import com.vaadin.shared.ui.MarginInfo;
/**
@@ -561,19 +559,10 @@ public class VAbstractOrderedLayout extends FlowPanel {
} else {
// Non-relative child without expansion should be unconstrained
- if (BrowserInfo.get().isIE8()) {
- // unconstrained in IE8 is auto
- if (vertical) {
- slot.setHeight("auto");
- } else {
- slot.setWidth("auto");
- }
+ if (vertical) {
+ slotStyle.clearHeight();
} else {
- if (vertical) {
- slotStyle.clearHeight();
- } else {
- slotStyle.clearWidth();
- }
+ slotStyle.clearWidth();
}
}
}
@@ -718,7 +707,6 @@ public class VAbstractOrderedLayout extends FlowPanel {
}
}
}
- WidgetUtil.forceIE8Redraw(getElement());
}
/**
@@ -747,3 +735,4 @@ public class VAbstractOrderedLayout extends FlowPanel {
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/table/TableConnector.java b/client/src/main/java/com/vaadin/client/ui/table/TableConnector.java
index 2dbb1aca6f..ccfb715291 100644
--- a/client/src/main/java/com/vaadin/client/ui/table/TableConnector.java
+++ b/client/src/main/java/com/vaadin/client/ui/table/TableConnector.java
@@ -23,11 +23,9 @@ import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.EventTarget;
-import com.google.gwt.dom.client.Style.Position;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.Widget;
import com.vaadin.client.ApplicationConnection;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.ComponentConnector;
import com.vaadin.client.ConnectorHierarchyChangeEvent;
import com.vaadin.client.ConnectorHierarchyChangeEvent.ConnectorHierarchyChangeHandler;
@@ -388,19 +386,6 @@ public class TableConnector extends AbstractFieldConnector
public void updateEnabledState(boolean enabledState) {
super.updateEnabledState(enabledState);
getWidget().enabled = isEnabled();
-
- if (BrowserInfo.get().isIE8() && !getWidget().enabled) {
- /*
- * The disabled shim will not cover the table body if it is relative
- * in IE8. See #7324
- */
- getWidget().scrollBodyPanel.getElement().getStyle()
- .setPosition(Position.STATIC);
- } else if (BrowserInfo.get().isIE8()) {
- getWidget().scrollBodyPanel.getElement().getStyle()
- .setPosition(Position.RELATIVE);
- }
-
}
@Override
@@ -431,9 +416,6 @@ public class TableConnector extends AbstractFieldConnector
Scheduler.get().scheduleFinally(new ScheduledCommand() {
@Override
public void execute() {
- // IE8 needs some hacks to measure sizes correctly
- WidgetUtil.forceIE8Redraw(getWidget().getElement());
-
getLayoutManager().setNeedsMeasure(TableConnector.this);
ServerConnector parent = getParent();
if (parent instanceof ComponentConnector) {
diff --git a/client/src/main/java/com/vaadin/client/ui/tree/TreeConnector.java b/client/src/main/java/com/vaadin/client/ui/tree/TreeConnector.java
index ba3ee07afb..c28a58aaad 100644
--- a/client/src/main/java/com/vaadin/client/ui/tree/TreeConnector.java
+++ b/client/src/main/java/com/vaadin/client/ui/tree/TreeConnector.java
@@ -66,9 +66,6 @@ public class TreeConnector extends AbstractComponentConnector
if (uidl.hasAttribute("partialUpdate")) {
handleUpdate(uidl);
- // IE8 needs a hack to measure the tree again after update
- WidgetUtil.forceIE8Redraw(getWidget().getElement());
-
getWidget().rendering = false;
return;
}
@@ -178,9 +175,6 @@ public class TreeConnector extends AbstractComponentConnector
getWidget().focusedNode.setFocused(false);
}
- // IE8 needs a hack to measure the tree again after update
- WidgetUtil.forceIE8Redraw(getWidget().getElement());
-
getWidget().rendering = false;
}
@@ -395,3 +389,4 @@ public class TreeConnector extends AbstractComponentConnector
WidgetUtil.clearTextSelection();
}
}
+
diff --git a/client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java b/client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java
index ec2144fb08..7c0df8761d 100644
--- a/client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java
+++ b/client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java
@@ -30,7 +30,6 @@ import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.dom.client.Style;
import com.google.gwt.dom.client.Style.Position;
-import com.google.gwt.dom.client.StyleElement;
import com.google.gwt.dom.client.StyleInjector;
import com.google.gwt.event.dom.client.KeyDownEvent;
import com.google.gwt.event.dom.client.KeyDownHandler;
@@ -51,7 +50,6 @@ import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.HandlerRegistration;
import com.vaadin.client.ApplicationConnection;
import com.vaadin.client.ApplicationConnection.ApplicationStoppedEvent;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.ComponentConnector;
import com.vaadin.client.ConnectorHierarchyChangeEvent;
import com.vaadin.client.Focusable;
@@ -486,17 +484,6 @@ public class UIConnector extends AbstractSingleComponentContainerConnector
public void init(String rootPanelId,
ApplicationConnection applicationConnection) {
- // Create a style tag for style injections so they don't end up in
- // the theme tag in IE8-IE10 (we don't want to wipe them out if we
- // change theme).
- // StyleInjectorImplIE always injects to the last style tag on the page.
- if (BrowserInfo.get().isIE()
- && BrowserInfo.get().getBrowserMajorVersion() < 11) {
- StyleElement style = Document.get().createStyleElement();
- style.setType("text/css");
- getHead().appendChild(style);
- }
-
Widget shortcutContextWidget = getWidget();
if (applicationConnection.getConfiguration().isStandalone()) {
// Listen to body for standalone apps (#19392)
@@ -611,7 +598,7 @@ public class UIConnector extends AbstractSingleComponentContainerConnector
* height. Assuming v-ui does not have an undefined width for now, see
* #8460.
*/
- if (child.isRelativeHeight() && !BrowserInfo.get().isIE9()) {
+ if (child.isRelativeHeight()) {
childStyle.setPosition(Position.ABSOLUTE);
} else {
childStyle.clearPosition();
diff --git a/client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java b/client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java
index fe1d5e521f..7d9094e583 100644
--- a/client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java
+++ b/client/src/main/java/com/vaadin/client/ui/window/WindowConnector.java
@@ -33,13 +33,11 @@ import com.google.gwt.event.dom.client.DoubleClickHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Window;
import com.vaadin.client.ApplicationConnection;
-import com.vaadin.client.BrowserInfo;
import com.vaadin.client.ComponentConnector;
import com.vaadin.client.ConnectorHierarchyChangeEvent;
import com.vaadin.client.LayoutManager;
import com.vaadin.client.Paintable;
import com.vaadin.client.UIDL;
-import com.vaadin.client.WidgetUtil;
import com.vaadin.client.communication.RpcProxy;
import com.vaadin.client.communication.StateChangeEvent;
import com.vaadin.client.ui.AbstractSingleComponentContainerConnector;
@@ -251,10 +249,7 @@ public class WindowConnector extends AbstractSingleComponentContainerConnector
Element layoutElement = content.getWidget().getElement();
Style childStyle = layoutElement.getStyle();
- // IE8 needs some hackery to measure its content correctly
- WidgetUtil.forceIE8Redraw(layoutElement);
-
- if (content.isRelativeHeight() && !BrowserInfo.get().isIE9()) {
+ if (content.isRelativeHeight()) {
childStyle.setPosition(Position.ABSOLUTE);
Style wrapperStyle = contentElement.getStyle();
diff --git a/client/src/main/java/com/vaadin/client/widgets/Escalator.java b/client/src/main/java/com/vaadin/client/widgets/Escalator.java
index 2aca151509..a5e95a26a5 100644
--- a/client/src/main/java/com/vaadin/client/widgets/Escalator.java
+++ b/client/src/main/java/com/vaadin/client/widgets/Escalator.java
@@ -132,7 +132,7 @@ import com.vaadin.shared.util.SharedUtil;
Each RowContainer can be thought to have three levels of
indices for any given displayed row (but the distinction
- matters primarily for the BodyRowContainerImpl, because of
+ matters primarily for the BodyRowContainerImpl, because of
the way it scrolls through data):
- Logical index
@@ -151,8 +151,8 @@ import com.vaadin.shared.util.SharedUtil;
(because of 0-based indices). In Header and
FooterRowContainers, you are safe to assume that the logical
index is the same as the physical index. But because the
- BodyRowContainerImpl never displays large data sources
- entirely in the DOM, a physical index usually has no
+ BodyRowContainerImpl never displays large data sources
+ entirely in the DOM, a physical index usually has no
apparent direct relationship with its logical index.
VISUAL INDEX is the index relating to the order that you
@@ -678,7 +678,7 @@ public class Escalator extends Widget
var hScrollElem = hScroll.@com.vaadin.client.widget.escalator.ScrollbarBundle::getElement()();
return $entry(function(e) {
- var target = e.target || e.srcElement; // IE8 uses e.scrElement
+ var target = e.target;
// in case the scroll event was native (i.e. scrollbars were dragged, or
// the scrollTop/Left was manually modified), the bundles have old cache
@@ -926,14 +926,9 @@ public class Escalator extends Widget
* class.
*/
/*-{
- if (element.addEventListener) {
- // firefox likes "wheel", while others use "mousewheel"
- var eventName = 'onmousewheel' in element ? 'mousewheel' : 'wheel';
- element.addEventListener(eventName, this.@com.vaadin.client.widgets.JsniWorkaround::mousewheelListenerFunction);
- } else {
- // IE8
- element.attachEvent("onmousewheel", this.@com.vaadin.client.widgets.JsniWorkaround::mousewheelListenerFunction);
- }
+ // firefox likes "wheel", while others use "mousewheel"
+ var eventName = 'onmousewheel' in element ? 'mousewheel' : 'wheel';
+ element.addEventListener(eventName, this.@com.vaadin.client.widgets.JsniWorkaround::mousewheelListenerFunction);
}-*/;
public native void detachMousewheelListener(Element element)
@@ -946,14 +941,9 @@ public class Escalator extends Widget
* class.
*/
/*-{
- if (element.addEventListener) {
- // firefox likes "wheel", while others use "mousewheel"
- var eventName = element.onwheel===undefined?"mousewheel":"wheel";
- element.removeEventListener(eventName, this.@com.vaadin.client.widgets.JsniWorkaround::mousewheelListenerFunction);
- } else {
- // IE8
- element.detachEvent("onmousewheel", this.@com.vaadin.client.widgets.JsniWorkaround::mousewheelListenerFunction);
- }
+ // firefox likes "wheel", while others use "mousewheel"
+ var eventName = element.onwheel===undefined?"mousewheel":"wheel";
+ element.removeEventListener(eventName, this.@com.vaadin.client.widgets.JsniWorkaround::mousewheelListenerFunction);
}-*/;
public native void attachTouchListeners(Element element)
@@ -966,14 +956,10 @@ public class Escalator extends Widget
* class.
*/
/*-{
- if (element.addEventListener) {
- element.addEventListener("touchstart", this.@com.vaadin.client.widgets.JsniWorkaround::touchStartFunction);
- element.addEventListener("touchmove", this.@com.vaadin.client.widgets.JsniWorkaround::touchMoveFunction);
- element.addEventListener("touchend", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
- element.addEventListener("touchcancel", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
- } else {
- // this would be IE8, but we don't support it with touch
- }
+ element.addEventListener("touchstart", this.@com.vaadin.client.widgets.JsniWorkaround::touchStartFunction);
+ element.addEventListener("touchmove", this.@com.vaadin.client.widgets.JsniWorkaround::touchMoveFunction);
+ element.addEventListener("touchend", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
+ element.addEventListener("touchcancel", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
}-*/;
public native void detachTouchListeners(Element element)
@@ -986,14 +972,10 @@ public class Escalator extends Widget
* class.
*/
/*-{
- if (element.removeEventListener) {
- element.removeEventListener("touchstart", this.@com.vaadin.client.widgets.JsniWorkaround::touchStartFunction);
- element.removeEventListener("touchmove", this.@com.vaadin.client.widgets.JsniWorkaround::touchMoveFunction);
- element.removeEventListener("touchend", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
- element.removeEventListener("touchcancel", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
- } else {
- // this would be IE8, but we don't support it with touch
- }
+ element.removeEventListener("touchstart", this.@com.vaadin.client.widgets.JsniWorkaround::touchStartFunction);
+ element.removeEventListener("touchmove", this.@com.vaadin.client.widgets.JsniWorkaround::touchMoveFunction);
+ element.removeEventListener("touchend", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
+ element.removeEventListener("touchcancel", this.@com.vaadin.client.widgets.JsniWorkaround::touchEndFunction);
}-*/;
public void scrollToColumn(final int columnIndex,
@@ -1069,8 +1051,9 @@ public class Escalator extends Widget
/**
* The table section element ({@code <thead>}, {@code <tbody>} or
- * {@code <tfoot>}) the rows (i.e. {@code
- * <tr>
+ * {@code <tfoot>}) the rows (i.e. {@code
+ *
+ <tr>
* } tags) are contained in.
*/
protected final TableSectionElement root;
@@ -1760,8 +1743,9 @@ public class Escalator extends Widget
* Applies the total length of the columns to each row element.
* <p>
* <em>Note:</em> In contrast to {@link #reapplyColumnWidths()}, this
- * method only modifies the width of the {@code
- * <tr>
+ * method only modifies the width of the {@code
+ *
+ <tr>
* } element, not the cells within.
*/
protected void reapplyRowWidths() {
@@ -3218,7 +3202,7 @@ public class Escalator extends Widget
* |3| ==> |*| ==> |5| <- newly rendered
* |4| |*|
* 5 5
- *
+ *
* 1 1 |1| <- newly rendered
* |2| |*| |4|
* |3| ==> |*| ==> |5| <- newly rendered
@@ -3265,7 +3249,7 @@ public class Escalator extends Widget
* 1 |1| <-- newly rendered (by scrolling)
* |4| |4|
* |*| ==> |*|
- * |*|
+ * |*|
* 5 5
*/
final double newScrollTop = contentBottom
@@ -3297,7 +3281,7 @@ public class Escalator extends Widget
* |1| |1|
* |4| ==> |4|
* |*| |5| <-- newly rendered
- *
+ *
* 5
*/
@@ -3370,7 +3354,7 @@ public class Escalator extends Widget
* : : |4| <- newly rendered
* |5| |5| |5|
* |6| ==> |*| ==> |7|
- * |7| |7|
+ * |7| |7|
*/
final int logicalTargetIndex = getLogicalRowIndex(
@@ -5616,32 +5600,15 @@ public class Escalator extends Widget
if (BrowserInfo.get().isIE()) {
/*
* IE refuses to scroll properly if the DIV isn't at least one pixel
- * larger than the scrollbar controls themselves. But, probably
- * because of subpixel rendering, in Grid, one pixel isn't enough,
- * so we'll add two instead.
+ * larger than the scrollbar controls themselves.
*/
- if (BrowserInfo.get().isIE9()) {
- scrollbarThickness += 2;
- } else {
- scrollbarThickness += 1;
- }
+ scrollbarThickness += 1;
}
root.appendChild(verticalScrollbar.getElement());
verticalScrollbar.addScrollHandler(scrollHandler);
verticalScrollbar.setScrollbarThickness(scrollbarThickness);
- if (BrowserInfo.get().isIE8()) {
- /*
- * IE8 will have to compensate for a misalignment where it pops the
- * scrollbar outside of its box. See Bug 3 in
- * http://edskes.net/ie/ie8overflowandexpandingboxbugs.htm
- */
- Style vScrollStyle = verticalScrollbar.getElement().getStyle();
- vScrollStyle.setRight(verticalScrollbar.getScrollbarThickness() - 1,
- Unit.PX);
- }
-
root.appendChild(horizontalScrollbar.getElement());
horizontalScrollbar.addScrollHandler(scrollHandler);
horizontalScrollbar.setScrollbarThickness(scrollbarThickness);
@@ -6815,4 +6782,4 @@ public class Escalator extends Widget
double getMinCellWidth(int colIndex) {
return columnConfiguration.getMinCellWidth(colIndex);
}
-} \ No newline at end of file
+}
diff --git a/client/src/main/java/com/vaadin/client/widgets/Grid.java b/client/src/main/java/com/vaadin/client/widgets/Grid.java
index bbeb683ad7..53be286ee0 100644
--- a/client/src/main/java/com/vaadin/client/widgets/Grid.java
+++ b/client/src/main/java/com/vaadin/client/widgets/Grid.java
@@ -36,7 +36,6 @@ import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.dom.client.BrowserEvents;
import com.google.gwt.dom.client.DivElement;
-import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.EventTarget;
import com.google.gwt.dom.client.NativeEvent;
@@ -1291,23 +1290,6 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
private static final String ERROR_CLASS_NAME = "error";
private static final String NOT_EDITABLE_CLASS_NAME = "not-editable";
- ScheduledCommand fieldFocusCommand = new ScheduledCommand() {
- private int count = 0;
-
- @Override
- public void execute() {
- Element focusedElement = WidgetUtil.getFocusedElement();
- if (focusedElement == grid.getElement()
- || focusedElement == Document.get().getBody()
- || count > 2) {
- focusColumn(focusedColumnIndex);
- } else {
- ++count;
- Scheduler.get().scheduleDeferred(this);
- }
- }
- };
-
/**
* A handler for events related to the Grid editor. Responsible for
* opening, moving or closing the editor based on the received event.
@@ -1865,11 +1847,7 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
}
if (i == focusedColumnIndex) {
- if (BrowserInfo.get().isIE8()) {
- Scheduler.get().scheduleDeferred(fieldFocusCommand);
- } else {
- focusColumn(focusedColumnIndex);
- }
+ focusColumn(focusedColumnIndex);
}
} else {
cell.addClassName(NOT_EDITABLE_CLASS_NAME);
@@ -3405,8 +3383,7 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
*/
final double widthPerRatio;
int leftOver = 0;
- if (BrowserInfo.get().isIE8() || BrowserInfo.get().isIE9()
- || BrowserInfo.getBrowserString().contains("PhantomJS")) {
+ if (BrowserInfo.getBrowserString().contains("PhantomJS")) {
// These browsers report subpixels as integers. this usually
// results into issues..
widthPerRatio = (int) (pixelsToDistribute / totalRatios);
@@ -4092,10 +4069,12 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
* This is a workaround to make Chrome work like Firefox. In Chrome,
* normally if you start a drag on one cell and release on:
* <ul>
- * <li>that same cell, the click event is that {@code
- * <td>}.
- * <li>a cell on that same row, the click event is the parent {@code
- * <tr>
+ * <li>that same cell, the click event is that {@code
+ *
+ <td>}.
+ * <li>a cell on that same row, the click event is the parent {@code
+ *
+ <tr>
* }.
* <li>a cell on another row, the click event is the table section ancestor
* ({@code <thead>}, {@code <tbody>} or {@code <tfoot>}).
diff --git a/client/src/main/java/com/vaadin/client/widgets/Overlay.java b/client/src/main/java/com/vaadin/client/widgets/Overlay.java
index 077448541b..35a5b46576 100644
--- a/client/src/main/java/com/vaadin/client/widgets/Overlay.java
+++ b/client/src/main/java/com/vaadin/client/widgets/Overlay.java
@@ -33,7 +33,6 @@ import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.RootPanel;
@@ -42,7 +41,6 @@ import com.vaadin.client.AnimationUtil;
import com.vaadin.client.AnimationUtil.AnimationEndListener;
import com.vaadin.client.BrowserInfo;
import com.vaadin.client.ComputedStyle;
-import com.vaadin.client.WidgetUtil;
/**
* Overlay widget extending the PopupPanel. Overlay is used to float elements on
@@ -51,34 +49,9 @@ import com.vaadin.client.WidgetUtil;
* <b>Note:</b> This class should always be constructed with
* {@link GWT#create(Class)}.
*
- * <h3>Shadow</h3>
- * <p>
- * The separate shadow element underneath the main overlay element is <strong>
- * <em>deprecated</em></strong>, and should not be used for new overlay
- * components. CSS box-shadow should be used instead of a separate shadow
- * element. Remember to include any vendor-prefixed versions to support all
- * browsers that you need to. To cover all possible browsers that Vaadin 7
- * supports, add <code>-webkit-box-shadow</code> and the standard
- * <code>box-shadow</code> properties.
- * </p>
- *
- * <p>
- * For IE8, which doesn't support CSS box-shadow, you can use the proprietary
- * DropShadow filter. It doesn't provide the exact same features as box-shadow,
- * but it is suitable for graceful degradation. Other options are to use a
- * border or a pseudo-element underneath the overlay which mimics a shadow, or
- * any combination of these.
- * </p>
- *
- * <p>
- * Read more about the DropShadow filter from
- * <a href="http://msdn.microsoft.com/en-us/library/ms532985(v=vs.85).aspx"
- * >Microsoft Developer Network</a>
- * </p>
- *
* @since 7.6.1
*/
-public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
+public class Overlay extends PopupPanel {
@Override
protected void onAttach() {
@@ -186,15 +159,6 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
*/
public static final String ADDITIONAL_CLASSNAME_ANIMATE_OUT = "animate-out";
- /**
- * The shadow element for this overlay.
- *
- * @deprecated See main JavaDoc for Overlay
- *
- */
- @Deprecated
- private Element shadow;
-
/*
* The creator of this Overlay (the widget that made the instance, not the
* layout parent)
@@ -208,40 +172,10 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
private IFrameElement shimElement;
/**
- * The HTML snippet that is used to render the actual shadow. In consists of
- * nine different DIV-elements with the following class names:
- *
- * <pre>
- * .v-shadow[-stylename]
- * ----------------------------------------------
- * | .top-left | .top | .top-right |
- * |---------------|-----------|----------------|
- * | | | |
- * | .left | .center | .right |
- * | | | |
- * |---------------|-----------|----------------|
- * | .bottom-left | .bottom | .bottom-right |
- * ----------------------------------------------
- * </pre>
- *
- * See default theme 'shadow.css' for implementation example.
- *
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- private static final String SHADOW_HTML = "<div aria-hidden=\"true\" class=\"top-left\"></div><div class=\"top\"></div><div class=\"top-right\"></div><div class=\"left\"></div><div class=\"center\"></div><div class=\"right\"></div><div class=\"bottom-left\"></div><div class=\"bottom\"></div><div class=\"bottom-right\"></div>";
-
- /**
* Matches {@link PopupPanel}.ANIMATION_DURATION
*/
private static final int POPUP_PANEL_ANIMATION_DURATION = 200;
- /**
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- private boolean sinkShadowEvents = false;
-
private List<Command> runOnClose = new ArrayList<Command>();
public Overlay() {
@@ -259,65 +193,6 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
adjustZIndex();
}
- /**
- * @deprecated See main JavaDoc for Overlay. Use the other constructors
- * without the <code>showShadow</code> parameter.
- */
- @Deprecated
- public Overlay(boolean autoHide, boolean modal, boolean showShadow) {
- super(autoHide, modal);
- setShadowEnabled(showShadow && useShadowDiv());
- adjustZIndex();
- }
-
- /**
- * Return true if a separate shadow div should be used. Since Vaadin 7.3,
- * shadows are implemented with CSS box-shadow. Thus, a shadow div is only
- * used for IE8 by default.
- *
- * @deprecated See main JavaDoc for Overlay
- * @since 7.3
- * @return true to use a shadow div
- */
- @Deprecated
- protected boolean useShadowDiv() {
- return BrowserInfo.get().isIE8();
- }
-
- /**
- * Method to control whether DOM elements for shadow are added. With this
- * method subclasses can control displaying of shadow also after the
- * constructor.
- *
- * @param enabled
- * true if shadow should be displayed
- *
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- protected void setShadowEnabled(boolean enabled) {
- if (enabled != isShadowEnabled()) {
- if (enabled) {
- shadow = DOM.createDiv();
- shadow.setClassName(CLASSNAME_SHADOW);
- shadow.setInnerHTML(SHADOW_HTML);
- shadow.getStyle().setPosition(Position.ABSOLUTE);
- addCloseHandler(this);
- } else {
- removeShadowIfPresent();
- shadow = null;
- }
- }
- }
-
- /**
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- protected boolean isShadowEnabled() {
- return shadow != null;
- }
-
protected boolean isShimElementEnabled() {
return shimElement != null;
}
@@ -328,27 +203,6 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
}
}
- /**
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- private void removeShadowIfPresent() {
- if (isShadowAttached()) {
- // Remove event listener from the shadow
- unsinkShadowEvents();
-
- shadow.removeFromParent();
- }
- }
-
- /**
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- private boolean isShadowAttached() {
- return isShadowEnabled() && shadow.getParentElement() != null;
- }
-
private void adjustZIndex() {
setZIndex(Z_INDEX);
}
@@ -361,9 +215,6 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
*/
protected void setZIndex(int zIndex) {
getElement().getStyle().setZIndex(zIndex);
- if (isShadowEnabled()) {
- shadow.getStyle().setZIndex(zIndex);
- }
}
@Override
@@ -553,19 +404,13 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
boolean isAttached = isAttached() && isShowing();
super.show();
- // Don't animate if already visible or browser is IE8 or IE9 (no CSS
- // animation support)
- if (isAttached || BrowserInfo.get().isIE8()
- || BrowserInfo.get().isIE9()) {
+ // Don't animate if already visible
+ if (isAttached) {
return false;
} else {
// Check if animations are used
setVisible(false);
addStyleDependentName(ADDITIONAL_CLASSNAME_ANIMATE_IN);
- if (isShadowEnabled()) {
- shadow.addClassName(CLASSNAME_SHADOW + "-"
- + ADDITIONAL_CLASSNAME_ANIMATE_IN);
- }
ComputedStyle cs = new ComputedStyle(getElement());
String animationName = AnimationUtil.getAnimationName(cs);
@@ -589,21 +434,12 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
getElement(), animateInListener);
removeStyleDependentName(
ADDITIONAL_CLASSNAME_ANIMATE_IN);
- if (isShadowEnabled()) {
- shadow.removeClassName(CLASSNAME_SHADOW
- + "-"
- + ADDITIONAL_CLASSNAME_ANIMATE_IN);
- }
}
}
});
return true;
} else {
removeStyleDependentName(ADDITIONAL_CLASSNAME_ANIMATE_IN);
- if (isShadowEnabled()) {
- shadow.removeClassName(CLASSNAME_SHADOW + "-"
- + ADDITIONAL_CLASSNAME_ANIMATE_IN);
- }
return false;
}
}
@@ -614,17 +450,12 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
super.onDetach();
// Always ensure shadow is removed when the overlay is removed.
- removeShadowIfPresent();
removeShimElement();
}
@Override
public void setVisible(boolean visible) {
super.setVisible(visible);
- if (isShadowEnabled()) {
- shadow.getStyle().setProperty("visibility",
- visible ? "visible" : "hidden");
- }
if (isShimElementEnabled()) {
shimElement.getStyle().setProperty("visibility",
visible ? "visible" : "hidden");
@@ -644,25 +475,6 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
}
/**
- * Sets the shadow style for this overlay. Will override any previous style
- * for the shadow. The default style name is defined by CLASSNAME_SHADOW.
- * The given style will be prefixed with CLASSNAME_SHADOW.
- *
- * @param style
- * The new style name for the shadow element. Will be prefixed by
- * CLASSNAME_SHADOW, e.g. style=='foobar' -> actual style
- * name=='v-shadow-foobar'.
- *
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- protected void setShadowStyle(String style) {
- if (isShadowEnabled()) {
- shadow.setClassName(CLASSNAME_SHADOW + "-" + style);
- }
- }
-
- /**
* Extending classes should always call this method after they change the
* size of overlay without using normal 'setWidth(String)' and
* 'setHeight(String)' methods (if not calling super.setWidth/Height).
@@ -715,7 +527,7 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
getOffsetWidth();
}
- if (isShadowEnabled() || needsShimElement()) {
+ if (needsShimElement()) {
PositionAndSize positionAndSize = new PositionAndSize(
getActualLeft(), getActualTop(), getOffsetWidth(),
@@ -726,14 +538,6 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
Element container = getElement().getParentElement();
- if (isShadowEnabled()) {
- updateShadowPosition(progress, zIndex, positionAndSize);
- if (shadow.getParentElement() == null) {
- container.insertBefore(shadow, getElement());
- sinkShadowEvents();
- }
- }
-
if (needsShimElement()) {
updateShimPosition(positionAndSize);
if (shimElement.getParentElement() == null) {
@@ -741,43 +545,6 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
}
}
}
- // Fix for #14173
- // IE9 and IE10 have a bug, when resize an a element with box-shadow.
- // IE9 and IE10 need explicit update to remove extra box-shadows
- if (BrowserInfo.get().isIE9() || BrowserInfo.get().isIE10()) {
- WidgetUtil.forceIERedraw(getElement());
- }
- }
-
- /**
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- private void updateShadowPosition(final double progress, int zIndex,
- PositionAndSize positionAndSize) {
- // Opera needs some shaking to get parts of the shadow showing
- // properly (ticket #2704)
- if (BrowserInfo.get().isOpera()) {
- // Clear the height of all middle elements
- DOM.getChild(shadow, 3).getStyle().setProperty("height", "auto");
- DOM.getChild(shadow, 4).getStyle().setProperty("height", "auto");
- DOM.getChild(shadow, 5).getStyle().setProperty("height", "auto");
- }
-
- updatePositionAndSize(shadow, positionAndSize);
- shadow.getStyle().setZIndex(zIndex);
- shadow.getStyle().setProperty("display", progress < 0.9 ? "none" : "");
-
- // Opera fix, part 2 (ticket #2704)
- if (BrowserInfo.get().isOpera()) {
- // We'll fix the height of all the middle elements
- DOM.getChild(shadow, 3).getStyle().setPropertyPx("height",
- DOM.getChild(shadow, 3).getOffsetHeight());
- DOM.getChild(shadow, 4).getStyle().setPropertyPx("height",
- DOM.getChild(shadow, 4).getOffsetHeight());
- DOM.getChild(shadow, 5).getStyle().setPropertyPx("height",
- DOM.getChild(shadow, 5).getOffsetHeight());
- }
}
private void updateShimPosition(PositionAndSize positionAndSize) {
@@ -811,72 +578,6 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
}
}
- @Override
- public void onClose(CloseEvent<PopupPanel> event) {
- removeShadowIfPresent();
- }
-
- @Override
- public void sinkEvents(int eventBitsToAdd) {
- super.sinkEvents(eventBitsToAdd);
- // Also sink events on the shadow if present
- sinkShadowEvents();
- }
-
- /**
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- private void sinkShadowEvents() {
- if (isSinkShadowEvents() && isShadowAttached()) {
- // Sink the same events as the actual overlay has sunk
- DOM.sinkEvents(shadow, DOM.getEventsSunk(getElement()));
- // Send events to Overlay.onBrowserEvent
- DOM.setEventListener(shadow, this);
- }
- }
-
- /**
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- private void unsinkShadowEvents() {
- if (isShadowAttached()) {
- DOM.setEventListener(shadow, null);
- DOM.sinkEvents(shadow, 0);
- }
- }
-
- /**
- * Enables or disables sinking the events of the shadow to the same
- * onBrowserEvent as events to the actual overlay goes.
- *
- * Please note, that if you enable this, you can't assume that e.g.
- * event.getEventTarget returns an element inside the DOM structure of the
- * overlay
- *
- * @param sinkShadowEvents
- *
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- protected void setSinkShadowEvents(boolean sinkShadowEvents) {
- this.sinkShadowEvents = sinkShadowEvents;
- if (sinkShadowEvents) {
- sinkShadowEvents();
- } else {
- unsinkShadowEvents();
- }
- }
-
- /**
- * @deprecated See main JavaDoc for Overlay
- */
- @Deprecated
- protected boolean isSinkShadowEvents() {
- return sinkShadowEvents;
- }
-
/**
* Get owner (Widget that made this Overlay, not the layout parent) of
* Overlay
@@ -1011,80 +712,59 @@ public class Overlay extends PopupPanel implements CloseHandler<PopupPanel> {
*/
public void hide(final boolean autoClosed, final boolean animateIn,
final boolean animateOut) {
- if (BrowserInfo.get().isIE8() || BrowserInfo.get().isIE9()) {
- reallyHide(autoClosed);
+ if (animateIn
+ && getStyleName().contains(ADDITIONAL_CLASSNAME_ANIMATE_IN)) {
+ AnimationUtil.addAnimationEndListener(getElement(),
+ new AnimationEndListener() {
+ @Override
+ public void onAnimationEnd(NativeEvent event) {
+ if (AnimationUtil.getAnimationName(event).contains(
+ ADDITIONAL_CLASSNAME_ANIMATE_IN)) {
+ reallyHide(autoClosed);
+ }
+ }
+ });
} else {
- if (animateIn && getStyleName()
- .contains(ADDITIONAL_CLASSNAME_ANIMATE_IN)) {
+ // Check if animations are used
+ addStyleDependentName(ADDITIONAL_CLASSNAME_ANIMATE_OUT);
+ ComputedStyle cs = new ComputedStyle(getElement());
+ String animationName = AnimationUtil.getAnimationName(cs);
+ if (animationName == null) {
+ animationName = "";
+ }
+
+ if (animateOut && animationName
+ .contains(ADDITIONAL_CLASSNAME_ANIMATE_OUT)) {
+ // Disable GWT PopupPanel closing animation if used
+ setAnimationEnabled(false);
+
AnimationUtil.addAnimationEndListener(getElement(),
new AnimationEndListener() {
@Override
public void onAnimationEnd(NativeEvent event) {
- if (AnimationUtil.getAnimationName(event)
- .contains(
- ADDITIONAL_CLASSNAME_ANIMATE_IN)) {
+ String animationName = AnimationUtil
+ .getAnimationName(event);
+ if (animationName.contains(
+ ADDITIONAL_CLASSNAME_ANIMATE_OUT)) {
+ AnimationUtil
+ .removeAllAnimationEndListeners(
+ getElement());
+ // Remove both animation styles just in
+ // case
+ removeStyleDependentName(
+ ADDITIONAL_CLASSNAME_ANIMATE_IN);
+ removeStyleDependentName(
+ ADDITIONAL_CLASSNAME_ANIMATE_OUT);
reallyHide(autoClosed);
}
}
});
+ // No event previews should happen after the animation has
+ // started
+ Overlay.this.setPreviewingAllNativeEvents(false);
} else {
- // Check if animations are used
- addStyleDependentName(ADDITIONAL_CLASSNAME_ANIMATE_OUT);
- if (isShadowEnabled()) {
- shadow.addClassName(CLASSNAME_SHADOW + "-"
- + ADDITIONAL_CLASSNAME_ANIMATE_OUT);
- }
- ComputedStyle cs = new ComputedStyle(getElement());
- String animationName = AnimationUtil.getAnimationName(cs);
- if (animationName == null) {
- animationName = "";
- }
-
- if (animateOut && animationName
- .contains(ADDITIONAL_CLASSNAME_ANIMATE_OUT)) {
- // Disable GWT PopupPanel closing animation if used
- setAnimationEnabled(false);
-
- AnimationUtil.addAnimationEndListener(getElement(),
- new AnimationEndListener() {
- @Override
- public void onAnimationEnd(NativeEvent event) {
- String animationName = AnimationUtil
- .getAnimationName(event);
- if (animationName.contains(
- ADDITIONAL_CLASSNAME_ANIMATE_OUT)) {
- AnimationUtil
- .removeAllAnimationEndListeners(
- getElement());
- // Remove both animation styles just in
- // case
- removeStyleDependentName(
- ADDITIONAL_CLASSNAME_ANIMATE_IN);
- removeStyleDependentName(
- ADDITIONAL_CLASSNAME_ANIMATE_OUT);
- if (isShadowEnabled()) {
- shadow.removeClassName(
- CLASSNAME_SHADOW + "-"
- + ADDITIONAL_CLASSNAME_ANIMATE_IN);
- shadow.removeClassName(
- CLASSNAME_SHADOW + "-"
- + ADDITIONAL_CLASSNAME_ANIMATE_OUT);
- }
- reallyHide(autoClosed);
- }
- }
- });
- // No event previews should happen after the animation has
- // started
- Overlay.this.setPreviewingAllNativeEvents(false);
- } else {
- removeStyleDependentName(ADDITIONAL_CLASSNAME_ANIMATE_OUT);
- if (isShadowEnabled()) {
- shadow.removeClassName(CLASSNAME_SHADOW + "-"
- + ADDITIONAL_CLASSNAME_ANIMATE_OUT);
- }
- reallyHide(autoClosed);
- }
+ removeStyleDependentName(ADDITIONAL_CLASSNAME_ANIMATE_OUT);
+ reallyHide(autoClosed);
}
}
}
diff --git a/client/src/main/resources/com/vaadin/Vaadin.gwt.xml b/client/src/main/resources/com/vaadin/Vaadin.gwt.xml
index 35b225560e..739225e594 100644
--- a/client/src/main/resources/com/vaadin/Vaadin.gwt.xml
+++ b/client/src/main/resources/com/vaadin/Vaadin.gwt.xml
@@ -13,8 +13,6 @@
<inherits name="com.google.gwt.logging.Logging" />
<set-property name="gwt.logging.enabled" value="TRUE" />
- <inherits name="com.vaadin.VaadinBrowserSpecificOverrides" />
-
<source path="client" />
<source path="shared" />
@@ -42,8 +40,7 @@
<!-- Use the new cross site linker to get a nocache.js without document.write -->
<add-linker name="xsiframe" />
- <!-- Remove IE6/IE7 permutation as they are not supported -->
- <set-property name="user.agent" value="ie8,ie9,ie10,gecko1_8,safari" />
+ <set-property name="user.agent" value="gecko1_8,safari" />
<!-- Pointer event support -->
<define-property name="modernie" values="none,yes" />
@@ -75,11 +72,6 @@
</none>
</replace-with>
- <replace-with class="com.vaadin.client.event.PointerEventSupportImplIE10">
- <when-type-is class="com.vaadin.client.event.PointerEventSupportImpl" />
- <when-property-is value="ie10" name="user.agent" />
- </replace-with>
-
<replace-with
class="com.vaadin.client.communication.DefaultConnectionStateHandler">
<when-type-is
diff --git a/client/src/main/resources/com/vaadin/VaadinBrowserSpecificOverrides.gwt.xml b/client/src/main/resources/com/vaadin/VaadinBrowserSpecificOverrides.gwt.xml
deleted file mode 100644
index ceedde50a6..0000000000
--- a/client/src/main/resources/com/vaadin/VaadinBrowserSpecificOverrides.gwt.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<module>
- <!-- This GWT module defines the browser specific overrides used by Vaadin -->
-
- <!-- Hint for WidgetSetBuilder not to automatically update the file -->
- <!-- WS Compiler: manually edited -->
-
- <!-- Fall through to this rule for everything but IE -->
- <replace-with
- class="com.vaadin.client.ui.upload.UploadIFrameOnloadStrategy">
- <when-type-is
- class="com.vaadin.client.ui.upload.UploadIFrameOnloadStrategy" />
- </replace-with>
-
- <replace-with
- class="com.vaadin.client.ui.upload.UploadIFrameOnloadStrategyIE">
- <when-type-is
- class="com.vaadin.client.ui.upload.UploadIFrameOnloadStrategy" />
- <any>
- <when-property-is name="user.agent" value="ie8" />
- </any>
- </replace-with>
-
- <!-- Fall through to this rule for everything but IE -->
- <replace-with class="com.vaadin.client.ui.VDragAndDropWrapper">
- <when-type-is class="com.vaadin.client.ui.VDragAndDropWrapper" />
- </replace-with>
-
- <replace-with class="com.vaadin.client.ui.VDragAndDropWrapperIE">
- <when-type-is class="com.vaadin.client.ui.VDragAndDropWrapper" />
- <any>
- <when-property-is name="user.agent" value="ie8" />
- </any>
- </replace-with>
-
- <!-- Fall through to this rule for everything but IE -->
- <replace-with class="com.vaadin.client.LayoutManager">
- <when-type-is class="com.vaadin.client.LayoutManager" />
- </replace-with>
-
- <replace-with class="com.vaadin.client.LayoutManagerIE8">
- <when-type-is class="com.vaadin.client.LayoutManager" />
- <any>
- <when-property-is name="user.agent" value="ie8" />
- </any>
- </replace-with>
-
-</module>
diff --git a/client/src/test/java/com/vaadin/client/VBrowserDetailsUserAgentParserTest.java b/client/src/test/java/com/vaadin/client/VBrowserDetailsUserAgentParserTest.java
index c7eaf306fe..a52c5d63a9 100644
--- a/client/src/test/java/com/vaadin/client/VBrowserDetailsUserAgentParserTest.java
+++ b/client/src/test/java/com/vaadin/client/VBrowserDetailsUserAgentParserTest.java
@@ -22,17 +22,6 @@ public class VBrowserDetailsUserAgentParserTest {
private static final String FIREFOX_40B11_WIN = "Mozilla/5.0 (Windows NT 5.1; rv:2.0b11) Gecko/20100101 Firefox/4.0b11";
private static final String KONQUEROR_LINUX = "Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Exabot-Thumbnails)";
- private static final String IE6_WINDOWS = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
- private static final String IE7_WINDOWS = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
-
- private static final String IE8_WINDOWS = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)";
- private static final String IE8_IN_IE7_MODE_WINDOWS = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)";
-
- private static final String IE9_IN_IE7_MODE_WINDOWS_7 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)";
- private static final String IE9_BETA_IN_IE8_MODE_WINDOWS_7 = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)";
- private static final String IE9_BETA_WINDOWS_7 = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
-
- private static final String IE10_WINDOWS_8 = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
private static final String IE11_WINDOWS_7 = "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; rv:11.0) like Gecko";
private static final String IE11_WINDOWS_PHONE_8_1_UPDATE = "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 920) Like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537";
@@ -344,106 +333,6 @@ public class VBrowserDetailsUserAgentParserTest {
}
@Test
- public void testIE6() {
- VBrowserDetails bd = new VBrowserDetails(IE6_WINDOWS);
- assertEngineVersion(bd, -1);
- assertIE(bd);
- assertBrowserMajorVersion(bd, 6);
- assertBrowserMinorVersion(bd, 0);
- assertWindows(bd);
- }
-
- @Test
- public void testIE7() {
- VBrowserDetails bd = new VBrowserDetails(IE7_WINDOWS);
- assertEngineVersion(bd, -1);
- assertIE(bd);
- assertBrowserMajorVersion(bd, 7);
- assertBrowserMinorVersion(bd, 0);
- assertWindows(bd);
- }
-
- @Test
- public void testIE8() {
- VBrowserDetails bd = new VBrowserDetails(IE8_WINDOWS);
- assertTrident(bd);
- assertEngineVersion(bd, 4);
- assertIE(bd);
- assertBrowserMajorVersion(bd, 8);
- assertBrowserMinorVersion(bd, 0);
- assertWindows(bd);
- }
-
- @Test
- public void testIE8CompatibilityMode() {
- VBrowserDetails bd = new VBrowserDetails(IE8_IN_IE7_MODE_WINDOWS);
- bd.setIEMode(7);
-
- assertTrident(bd);
- assertEngineVersion(bd, 4);
- assertIE(bd);
- assertBrowserMajorVersion(bd, 7);
- assertBrowserMinorVersion(bd, 0);
-
- assertWindows(bd);
- }
-
- @Test
- public void testIE9() {
- VBrowserDetails bd = new VBrowserDetails(IE9_BETA_WINDOWS_7);
- assertTrident(bd);
- assertEngineVersion(bd, 5);
- assertIE(bd);
- assertBrowserMajorVersion(bd, 9);
- assertBrowserMinorVersion(bd, 0);
- assertWindows(bd);
- }
-
- @Test
- public void testIE9InIE7CompatibilityMode() {
- VBrowserDetails bd = new VBrowserDetails(IE9_IN_IE7_MODE_WINDOWS_7);
- // bd.setIE8InCompatibilityMode();
-
- assertTrident(bd);
- assertEngineVersion(bd, 5);
- assertIE(bd);
- assertBrowserMajorVersion(bd, 7);
- assertBrowserMinorVersion(bd, 0);
-
- assertWindows(bd);
- }
-
- @Test
- public void testIE9InIE8CompatibilityMode() {
- VBrowserDetails bd = new VBrowserDetails(
- IE9_BETA_IN_IE8_MODE_WINDOWS_7);
- // bd.setIE8InCompatibilityMode();
-
- /*
- * Trident/4.0 in example user agent string based on beta even though it
- * should be Trident/5.0 in real (non-beta) user agent strings
- */
- assertTrident(bd);
- assertEngineVersion(bd, 4);
- assertIE(bd);
- assertBrowserMajorVersion(bd, 8);
- assertBrowserMinorVersion(bd, 0);
-
- assertWindows(bd);
- }
-
- @Test
- public void testIE10() {
- VBrowserDetails bd = new VBrowserDetails(IE10_WINDOWS_8);
- assertTrident(bd);
- assertEngineVersion(bd, 6);
- assertIE(bd);
- assertBrowserMajorVersion(bd, 10);
- assertBrowserMinorVersion(bd, 0);
- assertWindows(bd);
- }
-
- @Test
public void testIE11() {
VBrowserDetails bd = new VBrowserDetails(IE11_WINDOWS_7);
assertTrident(bd);
@@ -679,3 +568,4 @@ public class VBrowserDetailsUserAgentParserTest {
}
}
+