From 0081286c8d05c3751803181230092bd4b1e769f7 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Wed, 17 Aug 2016 23:02:37 +0300 Subject: [PATCH] Remove IE8-IE10 client side code Change-Id: I2ca0b41c3cc2ed851646ced2e0693a93b1853c95 --- .../java/com/vaadin/client/BrowserInfo.java | 4 + .../java/com/vaadin/client/LayoutManager.java | 24 +- .../com/vaadin/client/LayoutManagerIE8.java | 115 ----- .../client/MouseEventDetailsBuilder.java | 3 +- .../src/main/java/com/vaadin/client/Util.java | 17 +- .../main/java/com/vaadin/client/VTooltip.java | 3 +- .../java/com/vaadin/client/WidgetUtil.java | 65 +-- .../client/communication/MessageHandler.java | 4 +- .../JavaScriptRendererConnector.java | 12 +- .../client/debug/internal/InfoSection.java | 13 +- .../internal/theme/DebugWindowStyles.java | 4 +- .../extensions/ResponsiveConnector.java | 39 +- .../client/ui/JsniMousewheelHandler.java | 7 +- .../com/vaadin/client/ui/VAbsoluteLayout.java | 12 +- .../java/com/vaadin/client/ui/VButton.java | 19 +- .../com/vaadin/client/ui/VContextMenu.java | 2 +- .../com/vaadin/client/ui/VFilterSelect.java | 63 +-- .../java/com/vaadin/client/ui/VLabel.java | 13 +- .../java/com/vaadin/client/ui/VMenuBar.java | 2 +- .../java/com/vaadin/client/ui/VOverlay.java | 13 +- .../com/vaadin/client/ui/VPopupCalendar.java | 2 +- .../java/com/vaadin/client/ui/VPopupView.java | 2 +- .../com/vaadin/client/ui/VScrollTable.java | 9 +- .../java/com/vaadin/client/ui/VSlider.java | 2 +- .../java/com/vaadin/client/ui/VTextArea.java | 3 +- .../main/java/com/vaadin/client/ui/VTree.java | 4 +- .../main/java/com/vaadin/client/ui/VUI.java | 10 +- .../java/com/vaadin/client/ui/VUpload.java | 3 +- .../java/com/vaadin/client/ui/VWindow.java | 54 +-- .../vaadin/client/ui/orderedlayout/Slot.java | 36 +- .../orderedlayout/VAbstractOrderedLayout.java | 19 +- .../client/ui/table/TableConnector.java | 18 - .../vaadin/client/ui/tree/TreeConnector.java | 7 +- .../com/vaadin/client/ui/ui/UIConnector.java | 15 +- .../client/ui/window/WindowConnector.java | 7 +- .../com/vaadin/client/widgets/Escalator.java | 95 ++-- .../java/com/vaadin/client/widgets/Grid.java | 37 +- .../com/vaadin/client/widgets/Overlay.java | 414 ++---------------- .../main/resources/com/vaadin/Vaadin.gwt.xml | 10 +- .../VaadinBrowserSpecificOverrides.gwt.xml | 47 -- .../VBrowserDetailsUserAgentParserTest.java | 112 +---- .../main/themes/VAADIN/themes/base/base.scss | 2 - .../themes/base/shadow/img/bottom-left.png | Bin 221 -> 0 bytes .../themes/base/shadow/img/bottom-right.png | Bin 224 -> 0 bytes .../VAADIN/themes/base/shadow/img/bottom.png | Bin 132 -> 0 bytes .../VAADIN/themes/base/shadow/img/center.png | Bin 109 -> 0 bytes .../VAADIN/themes/base/shadow/img/left.png | Bin 129 -> 0 bytes .../VAADIN/themes/base/shadow/img/right.png | Bin 130 -> 0 bytes .../themes/base/shadow/img/top-left.png | Bin 208 -> 0 bytes .../themes/base/shadow/img/top-right.png | Bin 220 -> 0 bytes .../VAADIN/themes/base/shadow/img/top.png | Bin 135 -> 0 bytes .../VAADIN/themes/base/shadow/shadow.scss | 74 ---- .../base/window/img/shadow/bottom-left.png | Bin 455 -> 0 bytes .../base/window/img/shadow/bottom-right.png | Bin 437 -> 0 bytes .../themes/base/window/img/shadow/bottom.png | Bin 168 -> 0 bytes .../themes/base/window/img/shadow/center.png | Bin 109 -> 0 bytes .../themes/base/window/img/shadow/left.png | Bin 141 -> 0 bytes .../themes/base/window/img/shadow/right.png | Bin 143 -> 0 bytes .../base/window/img/shadow/top-left.png | Bin 374 -> 0 bytes .../base/window/img/shadow/top-right.png | Bin 473 -> 0 bytes .../themes/base/window/img/shadow/top.png | Bin 143 -> 0 bytes .../VAADIN/themes/base/window/window.scss | 65 --- .../main/themes/VAADIN/themes/runo/runo.scss | 2 - .../themes/runo/shadow/img/bottom-left.png | Bin 183 -> 0 bytes .../themes/runo/shadow/img/bottom-right.png | Bin 192 -> 0 bytes .../VAADIN/themes/runo/shadow/img/bottom.png | Bin 130 -> 0 bytes .../VAADIN/themes/runo/shadow/img/center.png | Bin 109 -> 0 bytes .../VAADIN/themes/runo/shadow/img/left.png | Bin 124 -> 0 bytes .../VAADIN/themes/runo/shadow/img/right.png | Bin 124 -> 0 bytes .../themes/runo/shadow/img/top-left.png | Bin 169 -> 0 bytes .../themes/runo/shadow/img/top-right.png | Bin 186 -> 0 bytes .../VAADIN/themes/runo/shadow/img/top.png | Bin 125 -> 0 bytes .../VAADIN/themes/runo/shadow/shadow.scss | 72 --- .../runo/window/img/shadow/bottom-left.png | Bin 683 -> 0 bytes .../runo/window/img/shadow/bottom-right.png | Bin 583 -> 0 bytes .../themes/runo/window/img/shadow/bottom.png | Bin 150 -> 0 bytes .../themes/runo/window/img/shadow/center.png | Bin 109 -> 0 bytes .../themes/runo/window/img/shadow/left.png | Bin 144 -> 0 bytes .../themes/runo/window/img/shadow/right.png | Bin 146 -> 0 bytes .../runo/window/img/shadow/top-left.png | Bin 510 -> 0 bytes .../runo/window/img/shadow/top-right.png | Bin 654 -> 0 bytes .../themes/runo/window/img/shadow/top.png | Bin 148 -> 0 bytes .../VAADIN/themes/runo/window/window.scss | 50 --- .../VAADIN/themes/valo/shared/_overlay.scss | 50 --- 84 files changed, 159 insertions(+), 1496 deletions(-) delete mode 100644 client/src/main/java/com/vaadin/client/LayoutManagerIE8.java delete mode 100644 client/src/main/resources/com/vaadin/VaadinBrowserSpecificOverrides.gwt.xml delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/bottom-left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/bottom-right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/bottom.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/center.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/top-left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/top-right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/img/top.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/shadow/shadow.scss delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/bottom-left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/bottom-right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/bottom.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/center.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/top-left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/top-right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/base/window/img/shadow/top.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/bottom-left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/bottom-right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/bottom.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/center.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/top-left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/top-right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/img/top.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/shadow/shadow.scss delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/bottom-left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/bottom-right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/bottom.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/center.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top-left.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top-right.png delete mode 100644 themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top.png 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 measuredSizes = new HashMap(); - - // 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 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 @@ -669,22 +669,6 @@ public class Util { WidgetUtil.forceWebkitRedraw(element); } - /** - * 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 @@ -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 "
" for newlines set using - // setInnerText. The same for " " which is converted to " " - escapedText = escapedText.replaceAll("<(BR|br)>", "\n"); - escapedText = escapedText.replaceAll(" ", " "); - } 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; }-*/; @@ -897,20 +888,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 @@ -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( - ""); - - 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 = ""; - 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
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 { +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 { super(autoHide, modal); } - /** - * @deprecated See main JavaDoc for VOverlay. Use the other constructors - * without the showShadow 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 }, {@code } or - * {@code }) the rows (i.e. {@code - * + * {@code }) the rows (i.e. {@code + * + * } 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. *

* Note: In contrast to {@link #reapplyColumnWidths()}, this - * method only modifies the width of the {@code - * + * method only modifies the width of the {@code + * + * } 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 extends ResizeComposite implements HasSelectionHandlers, 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 extends ResizeComposite implements HasSelectionHandlers, } 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 extends ResizeComposite implements HasSelectionHandlers, */ 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 extends ResizeComposite implements HasSelectionHandlers, * This is a workaround to make Chrome work like Firefox. In Chrome, * normally if you start a drag on one cell and release on: *

    - *
  • that same cell, the click event is that {@code - * }. - *
  • a cell on that same row, the click event is the parent {@code - * + *
  • that same cell, the click event is that {@code + * + }. + *
  • a cell on that same row, the click event is the parent {@code + * + * }. *
  • a cell on another row, the click event is the table section ancestor * ({@code }, {@code } or {@code }). 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; * Note: This class should always be constructed with * {@link GWT#create(Class)}. * - *

    Shadow

    - *

    - * The separate shadow element underneath the main overlay element is - * deprecated, 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 -webkit-box-shadow and the standard - * box-shadow properties. - *

    - * - *

    - * 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. - *

    - * - *

    - * Read more about the DropShadow filter from - * Microsoft Developer Network - *

    - * * @since 7.6.1 */ -public class Overlay extends PopupPanel implements CloseHandler { +public class Overlay extends PopupPanel { @Override protected void onAttach() { @@ -186,15 +159,6 @@ public class Overlay extends PopupPanel implements CloseHandler { */ 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) @@ -207,41 +171,11 @@ public class Overlay extends PopupPanel implements CloseHandler { */ 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: - * - *
    -     *   .v-shadow[-stylename]
    -     *   ----------------------------------------------
    -     *   | .top-left     |   .top    |     .top-right |
    -     *   |---------------|-----------|----------------|
    -     *   |               |           |                |
    -     *   | .left         |  .center  |         .right |
    -     *   |               |           |                |
    -     *   |---------------|-----------|----------------|
    -     *   | .bottom-left  |  .bottom  |  .bottom-right |
    -     *   ----------------------------------------------
    -     * 
    - * - * See default theme 'shadow.css' for implementation example. - * - * @deprecated See main JavaDoc for Overlay - */ - @Deprecated - private static final String SHADOW_HTML = "
    "; - /** * 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 runOnClose = new ArrayList(); public Overlay() { @@ -259,65 +193,6 @@ public class Overlay extends PopupPanel implements CloseHandler { adjustZIndex(); } - /** - * @deprecated See main JavaDoc for Overlay. Use the other constructors - * without the showShadow 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 { } } - /** - * @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 { */ 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 { 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 { 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 { 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"); @@ -643,25 +474,6 @@ public class Overlay extends PopupPanel implements CloseHandler { positionOrSizeUpdated(1.0); } - /** - * 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 @@ -715,7 +527,7 @@ public class Overlay extends PopupPanel implements CloseHandler { getOffsetWidth(); } - if (isShadowEnabled() || needsShimElement()) { + if (needsShimElement()) { PositionAndSize positionAndSize = new PositionAndSize( getActualLeft(), getActualTop(), getOffsetWidth(), @@ -726,14 +538,6 @@ public class Overlay extends PopupPanel implements CloseHandler { 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 { } } } - // 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 { } } - @Override - public void onClose(CloseEvent 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 { */ 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 @@ - - @@ -42,8 +40,7 @@ - - + @@ -75,11 +72,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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"; @@ -343,106 +332,6 @@ public class VBrowserDetailsUserAgentParserTest { assertWindows(bd); } - @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); @@ -679,3 +568,4 @@ public class VBrowserDetailsUserAgentParserTest { } } + diff --git a/themes/src/main/themes/VAADIN/themes/base/base.scss b/themes/src/main/themes/VAADIN/themes/base/base.scss index e776e007fd..001d00be49 100644 --- a/themes/src/main/themes/VAADIN/themes/base/base.scss +++ b/themes/src/main/themes/VAADIN/themes/base/base.scss @@ -40,7 +40,6 @@ $v-line-height: $line-height !default; @import "popupview/popupview.scss"; @import "progressindicator/progressindicator.scss"; @import "select/select.scss"; -@import "shadow/shadow.scss"; @import "slider/slider.scss"; @import "splitpanel/splitpanel.scss"; @import "table/table.scss"; @@ -117,7 +116,6 @@ $v-line-height: $line-height !default; @include base-progressindicator(v-progressindicator); @include base-select; - @include base-shadow; @include base-slider; @include base-splitpanel; @include base-table; diff --git a/themes/src/main/themes/VAADIN/themes/base/shadow/img/bottom-left.png b/themes/src/main/themes/VAADIN/themes/base/shadow/img/bottom-left.png deleted file mode 100644 index 6b2cd00a0d67a18aa10beaef3c3397b71b91af0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CFVdQ&MBb@0GS6_G5`Po diff --git a/themes/src/main/themes/VAADIN/themes/base/shadow/img/bottom-right.png b/themes/src/main/themes/VAADIN/themes/base/shadow/img/bottom-right.png deleted file mode 100644 index c5c10a7bf5437c6acdedc2a7e0ab6b222392e910..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3Ciucc zX(MAsE92_U^)rsD+)ENr{%z&Y@1pLxCg4b&P(jE=C8b)o9g15VYMj0toKTbXz;EVZ z*20pN?vEO*%}-AJr(c*7FemYAr|`P9h9duG_DSr z1<%~X^wgl##FWaylc_d9MQWZdjv*Ddl9CbmC9(hj diff --git a/themes/src/main/themes/VAADIN/themes/base/shadow/img/center.png b/themes/src/main/themes/VAADIN/themes/base/shadow/img/center.png deleted file mode 100644 index 1db9a53c75bbe98fddf7e8592750559e9d487f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G{GKk3Ar-fhk`fX!7&r_V82TBSpOl;Z0ZK7=y85}Sb4q9e E04oI?J^%m! diff --git a/themes/src/main/themes/VAADIN/themes/base/shadow/img/left.png b/themes/src/main/themes/VAADIN/themes/base/shadow/img/left.png deleted file mode 100644 index 45634c05d87f158a2f0cc73059ba2c053e2762ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^AT}ch8<2ed)xHi$NtU=qlmzFem6RtIr7}3C_DmnE73x@*+B1F(pJ3zA az{s%Ji<6DFIlL68p25@A&t;ucLK6U-Hzkw+ diff --git a/themes/src/main/themes/VAADIN/themes/base/shadow/img/top-left.png b/themes/src/main/themes/VAADIN/themes/base/shadow/img/top-left.png deleted file mode 100644 index 10e743875e0820a767d27af469aaa297e07b5053..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3C3M^o1sIo^f(p!yA|7Dkk>9B)~k+Z6inM4T04;i{@@|vTBvx zG%qLFcvtj80lgEVm45G{7wt|zDDv;m)dx>=?lAE%NMB)msm0BZ3$&fV)78&qol`;+ E0JvgFfdBvi diff --git a/themes/src/main/themes/VAADIN/themes/base/shadow/img/top-right.png b/themes/src/main/themes/VAADIN/themes/base/shadow/img/top-right.png deleted file mode 100644 index 20888064759f68c9a6afbeb9acc56170617d544a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CNhJdSTv_TZ;g8cBg0t}Q>7=K ST)TlTVeoYIb6Mw<&;$Tt2UFSr diff --git a/themes/src/main/themes/VAADIN/themes/base/shadow/img/top.png b/themes/src/main/themes/VAADIN/themes/base/shadow/img/top.png deleted file mode 100644 index 9daf3f41f4e5a56ab20a77191a144162ccff94cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrA!3HEtFPV4&DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MVg*2jv*DdlF||q5)#>j<|sG`xOg;iqzWW*D4lU^(G{NX gfJyKT10x%Q#8pOJUfwUaftnaRUHx3vIVCg!0E(U?vH$=8 diff --git a/themes/src/main/themes/VAADIN/themes/base/shadow/shadow.scss b/themes/src/main/themes/VAADIN/themes/base/shadow/shadow.scss deleted file mode 100644 index b690ce02bd..0000000000 --- a/themes/src/main/themes/VAADIN/themes/base/shadow/shadow.scss +++ /dev/null @@ -1,74 +0,0 @@ -@mixin base-shadow($primaryStyleName : v-shadow) { - -.#{$primaryStyleName} { - position: absolute; - display: none; - pointer-events: none; -} - -.#{$primaryStyleName} .top-left { - position: absolute; overflow: hidden; - top: -3px; left: -5px; - width: 10px; height: 10px; - background: transparent url(img/top-left.png); -} - -.#{$primaryStyleName} .top { - position: absolute; overflow: hidden; - top: -3px; left: 5px; - height: 10px; right: 5px; - background: transparent url(img/top.png); -} - -.#{$primaryStyleName} .top-right { - position: absolute; overflow: hidden; - top: -3px; right: -5px; - width: 10px; height: 10px; - background: transparent url(img/top-right.png); -} - -.#{$primaryStyleName} .left { - position: absolute; overflow: hidden; - top: 7px; left: -5px; - width: 10px; - bottom: 3px; - background: transparent url(img/left.png); -} - -.#{$primaryStyleName} .center { - position: absolute; overflow: hidden; - top: 7px; left: 5px; - bottom: 3px; right: 5px; - background: transparent url(img/center.png); -} - -.#{$primaryStyleName} .right { - position: absolute; overflow: hidden; - top: 7px; right: -5px; - width: 10px; - bottom: 3px; - background: transparent url(img/right.png); -} - -.#{$primaryStyleName} .bottom-left { - position: absolute; overflow: hidden; - bottom: -7px; left: -5px; - width: 10px; height: 10px; - background: transparent url(img/bottom-left.png); -} - -.#{$primaryStyleName} .bottom { - position: absolute; overflow: hidden; - bottom: -7px; left: 5px; - right: 5px; height: 10px; - background: transparent url(img/bottom.png); -} - -.#{$primaryStyleName} .bottom-right { - position: absolute; overflow: hidden; - bottom: -7px; right: -5px; - width: 10px; height: 10px; - background: transparent url(img/bottom-right.png); -} - -} diff --git a/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/bottom-left.png b/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/bottom-left.png deleted file mode 100644 index f40e53f939a02d43ee85b63f683461fca6c3dc22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmV;&0XY7NP)5VLCN3GcRG2WYeKO3KNhKnRRL z_9Kp2R*+ff>ZqiAxElpb#pbe&KxeHAK0=hSoRXXty5>%TRphtmA}BB5sa%SH9z2t^q=DUtBeK%VX0$I~z^7rM2Q8v> zZN>7K^^gppc5PF2(y|s>XIU8SM-8iqe%srtv%AN+b2Amuz>gW~_P3FWx=t@u1Gb>9jCVY0Az3ElZ_S~<{ f270^m{uN*Vl3V_?7SGMp00000NkvXXu0mjflBUSO diff --git a/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/bottom.png b/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/bottom.png deleted file mode 100644 index 89096316e6e33cf983af7101fb6b945ea3051069..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{I!3HE3#9loEq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6?u8OIEGZ*vN^Jst3g4e;o|CWr4^1cGBQz3Z41)h96Y`M z{6S+G(TUf;X-$os_xDThmhTsQ#pjj;Eb?fydAsGJ7q?~5rW6l1-v&ko182@prU|ya QKvNk!UHx3vIVCg!00;&;xc~qF diff --git a/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/center.png b/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/center.png deleted file mode 100644 index 1db9a53c75bbe98fddf7e8592750559e9d487f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G{GKk3Ar-fhk`fX!7&r_V82TBSpOl;Z0ZK7=y85}Sb4q9e E04oI?J^%m! diff --git a/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/left.png b/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/left.png deleted file mode 100644 index bc526b167484c40be9c8331daffa67b7c7299157..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^GC<78!3HGHx}LiTq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c73q7rIEGZ*N=ivcNN7n?(@1Me5>rTXJ@m%m4BHWzj2W_? meY~Ew+>;^=HcK)x@i0ioGBmb}Gk62FGI+ZBxvX|6H_V+Po~-c6&ZTEIEGZ*N=ivcSi%12zr!E?uK!LS1Z`9Cv@1j803Y383=*FOO@GkCiCxvXmA^*-?NW>^?<-$a!j2bM@w`ss1j`^!IkN*W208()T UBRwrdt^fc407*qoM6N<$f-_E>`Tzg` diff --git a/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/top-right.png b/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/top-right.png deleted file mode 100644 index d54b748be768133e8b1c844bc8a4a8207e279b8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)#E`PiRto-BR{SNTBIk|5F!v79Xm@TRcNDst({62v7 z#_qf8HJIO%4PE9>;0iK(9Bc55W>z00h8YB#5Vbv0>4BLlY_@n4 zE3wY9Lt+5G11k+$b4>$FF;Nr_1My|?L##wlJC$jm0258KvUozKMZi~(EFMs9Le*QE zsl&Lj`n14qnx&X1%ti^yq(E$y**fd62aB+n*?HjCb53>HTUIJP(A!yH*FrW`gUm(H zhouh!WU%TsgiVvOc^_>DEZBm0p_Mg(X!c>|fkqxc7%GbF7Y3d{e{?kxvwG9UrNTl! z6)^jDVm& P00000NkvXXu0mjff~n1< diff --git a/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/top.png b/themes/src/main/themes/VAADIN/themes/base/window/img/shadow/top.png deleted file mode 100644 index 4d5272e7f34c508ee328433cc084511edf897a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{I!3HE3#9loEq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6&ZTEIEGZ*N=iydNJwcC^eJeP^xM$D5f;)U>$0JdgHMOW odX~C^!0Kz7;vECuimb*FGS~EooKWIeD zz3l2(v!I#zO~T`z>iH6E;sFTDSr z1<%~X^wgl##FWaylc_d9MJk>yjv*Ddk`fXU3KE%w_B$Nm7x*|;(qlt2N1DJv4yAw0 bED{V6>MR~-3$3;T)iZdy`njxgN@xNA*485- diff --git a/themes/src/main/themes/VAADIN/themes/runo/shadow/img/center.png b/themes/src/main/themes/VAADIN/themes/runo/shadow/img/center.png deleted file mode 100644 index d6fb99a8894f00ddf3f38d53f23077e127486eef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G{GKk3Ar-fh5)u*$*f|Us78U}fi7AzZCsS>JisU?9978H@C8Z=JB(No!DLi9H%2RmOeo4Vj+M$7wf%zGO V+p#s#>wqd5JYD@<);T3K0RUeZBEkRw diff --git a/themes/src/main/themes/VAADIN/themes/runo/shadow/img/right.png b/themes/src/main/themes/VAADIN/themes/runo/shadow/img/right.png deleted file mode 100644 index 34a46e7b13e6b22d07d5b2fb289acbcac857309a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!3HEBGrV^OQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JisU?9978H@C8Z=J6fi!Dclg8Hv7hOqy9V#0|4bYP4Dl=3 VSv&Vt2?A9zc)I$ztaD0e0sw-lBU1nX diff --git a/themes/src/main/themes/VAADIN/themes/runo/shadow/img/top-left.png b/themes/src/main/themes/VAADIN/themes/runo/shadow/img/top-left.png deleted file mode 100644 index 27cf4d3f6103b849b5376ca263b08f9d1546a77c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XyggkULn?0N^mcPGC~z>ZR<-^2zuEhSht|UYi<=Y9r34+) z`{6O+mGtyAM_BAOxe6qy9$%Kf?7kO+vh>pn%1(Ra)Sd<>hPU3|#v;K`7sqIGF?C`g P&{zgfS3j3^P6@6WdYj5;OXk;vd$@?2>|`>K#~9e diff --git a/themes/src/main/themes/VAADIN/themes/runo/shadow/img/top.png b/themes/src/main/themes/VAADIN/themes/runo/shadow/img/top.png deleted file mode 100644 index b654d78da9e5ac75e913da346533b4ea0c45b6b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr6!3HEPq^3FoDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9Me?35jv*Ddk`jO*jY%j+p^4e0pqZo2f?MYpn?M2s>mG*S U(%=PY{a~gTs?y<6Pc7L4P;^LkXULTGR=o`-bqrVrFm zow7lz#?EH-z#`K|igqeXs$f^SNI}N;B&ihcd|9~l18hLS48$0&lG+tAVzY|Mi=g@W5?BP+S+F``EI~1Fs~dGcFCXM|pe_aK!u=QM<#3mQL~t+JXr+A$FaWq_ VN~R3z$IAc!002ovPDHLkV1h9B_r3rC diff --git a/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/bottom.png b/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/bottom.png deleted file mode 100644 index ed24b667051b7b1c7e47d850f41549f06c84448b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^j6kf;!3HGHJy2Q%q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c67^gCvUfsRuCQypO)78&qol`;+ E04i1-W&i*H diff --git a/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/left.png b/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/left.png deleted file mode 100644 index 4c0b430f22e7ced4393260828653ecc4a24da890..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^>OjoM!3HE_!?w!-DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MMj=3jv*Ddl0pK4l2RHN+%(dh7A4M*>~hQz)0oZ5yIJYt pnv9||5eC9iZ8tf~xg8o98Di8J&b-?mF%_tr!PC{xWt~$(697eqDUARC diff --git a/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/right.png b/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/right.png deleted file mode 100644 index f81cfa0ce4dbec90ffe29ba092f4a3569b864bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^>OjoM!3HE_!?w!-DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MJApujv*Ddl0pK4ypj_Ve()bv_`rYaUwhmCq=WSnKICis sYj#mio>7&udBWNM{VvUSnFJCTKE75-->;RK3)Iix>FVdQ&MBb@0M%eIr2qf` diff --git a/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top-left.png b/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top-left.png deleted file mode 100644 index 7f793893988356a2cfec7932e8cba912d71b144f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmVPs6ejL&SkSANU#y)?5gMDIxR{knbSvbQ}8`nTcfG~l91;@r6~qS$*fs@ zg>X*dgR8vvH7>N zb-FE<`_$k`eNItIS$ryqwxyi1(PE7gM9oV+X9csX0TaQ?d5(4G9rcv)(n?tETUi?j z26Vi}l|5UrOH;>AFOS9+n2{|pr4d(NU_1pF0Mc{?efo-by8r+H07*qoM6N<$f^=Eh AL;wH) diff --git a/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top-right.png b/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top-right.png deleted file mode 100644 index feb490d565dde0d7e4218d222cadb0c33f9c4707..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmV;90&)F`P)3ui6Xcc(4(GOLr>s%2kS)v(Cf$Ed#XORmxH>%a{k8uti`3EoP|{si;}2 zVYWt42={ERqETr{`d!(CGsRG;_5Rsd*+lkQx0NtEeQvyB5mZ!E1A3x1RyQRaLMcEg zfwBN*5Q{I_8dV$SObake)_7XXx4-*-`tk=uFfE`CXuuk5gDmZ-l3qE#+OPmDyDjt= zHHdn?fZB`A1HhChz@Ux*j;W`Kaw%MNFJMJ4vtYSY0ajpdO?U+MOfqj~P&3F_)*H3D zWklsHnb4&uoV97g(yg0nECy?UO=967RW1aO7RU+JH4-?ShN7Hh8H;Q!t5u;8yedMb zp-x5aSQ}!!P_6$#V9#nR~cAzp_h2&2wxIuCeDJV^t4q!_;AqSR?aLbi; ok>zj@ur6ekE!IL>7w{v%08fRU8&xNCNB{r;07*qoM6N<$f~Lw7^#A|> diff --git a/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top.png b/themes/src/main/themes/VAADIN/themes/runo/window/img/shadow/top.png deleted file mode 100644 index 10bcc450eefe0dfd18ebc8cb442b7d293d0b75e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^j6kf;!3HGHJy2Q%q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6`6UuIEGZ*N(u-FN=iv$U=ldUp*|xZlA}q|uVJT7fgZP5 tljzi=U9OzQdQF_%jRgXeiW!-B82WxNif3?mw*yUJ@O1TaS?83{1OVqiC_(@L diff --git a/themes/src/main/themes/VAADIN/themes/runo/window/window.scss b/themes/src/main/themes/VAADIN/themes/runo/window/window.scss index bf2081674c..9b298309c3 100644 --- a/themes/src/main/themes/VAADIN/themes/runo/window/window.scss +++ b/themes/src/main/themes/VAADIN/themes/runo/window/window.scss @@ -153,54 +153,4 @@ } } -/* Shadow for window */ -.v-shadow-window .top-left { - top: -13px; left: -20px; - width: 39px; height: 39px; - background: transparent url(img/shadow/top-left.png); -} -.v-shadow-window .top { - top: -13px; left: 19px; - height: 39px; - right: 19px; - background: transparent url(img/shadow/top.png); -} -.v-shadow-window .top-right { - top: -13px; right: -20px; - width: 39px; height: 39px; - background: transparent url(img/shadow/top-right.png); -} -.v-shadow-window .left { - top: 26px; left: -20px; - width: 39px; - bottom: 12px; - background: transparent url(img/shadow/left.png); -} -.v-shadow-window .center { - top: 26px; left: 19px; - bottom: 12px; right: 19px; - background: transparent url(img/shadow/center.png); -} -.v-shadow-window .right { - top: 26px; right: -20px; - width: 39px; - bottom: 12px; - background: transparent url(img/shadow/right.png); -} -.v-shadow-window .bottom-left { - bottom: -27px; left: -20px; - width: 39px; height: 39px; - background: transparent url(img/shadow/bottom-left.png); -} -.v-shadow-window .bottom { - bottom: -27px; left: 19px; - right: 19px; height: 39px; - background: transparent url(img/shadow/bottom.png); -} -.v-shadow-window .bottom-right { - bottom: -27px; right: -20px; - width: 39px; height: 39px; - background: transparent url(img/shadow/bottom-right.png); -} - } \ No newline at end of file diff --git a/themes/src/main/themes/VAADIN/themes/valo/shared/_overlay.scss b/themes/src/main/themes/VAADIN/themes/valo/shared/_overlay.scss index 5af159b4ff..1c6f0c6fbc 100644 --- a/themes/src/main/themes/VAADIN/themes/valo/shared/_overlay.scss +++ b/themes/src/main/themes/VAADIN/themes/valo/shared/_overlay.scss @@ -144,56 +144,6 @@ $v-selection-item-font-weight: max(400, $v-font-weight); */ $v-selection-item-selection-color: $v-selection-color !default; - - - - -/* - * Simulates CSS box-shadow using the extraneous shadow elements in the DOM. - * - * @access private - * @deprecated The .v-shadow element is deprecated since 7.3.0 - * @group overlay - */ -@mixin valo-ie8-shadow($shadow, $element: top) { - .#{$element} { - $shadow-offset-x: nth($shadow, 1); - $shadow-offset-y: nth($shadow, 2); - $shadow-blur: nth($shadow, 3); - $shadow-spread: 0; - @if length($shadow) > 4 { - $shadow-spread: nth($shadow, 4); - } - $shadow-color: last($shadow); - $shadow-color-opacity: round(opacity($shadow-color) * 100); - $shadow-color: opacify($shadow-color, 1); - - position: absolute; - top: $shadow-offset-y - $shadow-blur - $shadow-spread; - right: -$shadow-offset-x + $shadow-blur - $shadow-spread; - bottom: -$shadow-offset-y + $shadow-blur - $shadow-spread; - left: $shadow-offset-x - $shadow-blur - $shadow-spread; - background: $shadow-color; - filter: alpha(opacity=#{$shadow-color-opacity}) progid:DXImageTransform.Microsoft.blur(pixelradius=#{strip-units($shadow-blur)}, makeShadow=false); - } -} - - - - - -// Not needed in modern browsers -.v-shadow, -.v-shadow-window { - display: none; -} - - - - - - - /** * Outputs styles for overlay elements * -- 2.39.5