| Index: lib/html/dart2js/html_dart2js.dart
|
| diff --git a/lib/html/dart2js/html_dart2js.dart b/lib/html/dart2js/html_dart2js.dart
|
| index c31e485b7ecc4188333da0fc783e55f15b660db2..ea7c4747fc89673cdbfbc78fbc510c5a035aa592 100644
|
| --- a/lib/html/dart2js/html_dart2js.dart
|
| +++ b/lib/html/dart2js/html_dart2js.dart
|
| @@ -12568,6 +12568,9 @@ class _ElementFactoryProvider {
|
| static Element createElement_tag(String tag)
|
| native "return document.createElement(tag)";
|
| }
|
| +// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
|
|
| class _ElementEventsImpl extends _EventsImpl implements ElementEvents {
|
| _ElementEventsImpl(_ptr) : super(_ptr);
|
| @@ -12638,8 +12641,6 @@ class _ElementEventsImpl extends _EventsImpl implements ElementEvents {
|
|
|
| EventListenerList get mouseUp => this['mouseup'];
|
|
|
| - EventListenerList get mouseWheel => this['mousewheel'];
|
| -
|
| EventListenerList get paste => this['paste'];
|
|
|
| EventListenerList get reset => this['reset'];
|
| @@ -12667,6 +12668,19 @@ class _ElementEventsImpl extends _EventsImpl implements ElementEvents {
|
| EventListenerList get touchStart => this['touchstart'];
|
|
|
| EventListenerList get transitionEnd => this['webkitTransitionEnd'];
|
| +
|
| + EventListenerList get mouseWheel {
|
| + if (JS('bool', '#.onwheel !== undefined', _ptr)) {
|
| + // W3C spec, and should be IE9+, but IE has a bug exposing onwheel.
|
| + return this['wheel'];
|
| + } else if (JS('bool', '#.onmousewheel !== undefined', _ptr)) {
|
| + // Chrome & IE
|
| + return this['mousewheel'];
|
| + } else {
|
| + // Firefox
|
| + return this['DOMMouseScroll'];
|
| + }
|
| + }
|
| }
|
| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| @@ -37576,38 +37590,106 @@ class _WebSocketEventsImpl extends _EventsImpl implements WebSocketEvents {
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| -// WARNING: Do not edit - generated code.
|
| -
|
| /// @domName WheelEvent
|
| abstract class WheelEvent implements MouseEvent {
|
|
|
| /** @domName WheelEvent.webkitDirectionInvertedFromDevice */
|
| abstract bool get webkitDirectionInvertedFromDevice;
|
|
|
| - /** @domName WheelEvent.wheelDelta */
|
| - abstract int get wheelDelta;
|
| + /** @domName WheelEvent.initWebKitWheelEvent */
|
| + void initWebKitWheelEvent(int wheelDeltaX, int wheelDeltaY, Window view, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey);
|
|
|
| - /** @domName WheelEvent.wheelDeltaX */
|
| - abstract int get wheelDeltaX;
|
|
|
| - /** @domName WheelEvent.wheelDeltaY */
|
| - abstract int get wheelDeltaY;
|
| + /** @domName WheelEvent.deltaX */
|
| + num get deltaX;
|
|
|
| - /** @domName WheelEvent.initWebKitWheelEvent */
|
| - void initWebKitWheelEvent(int wheelDeltaX, int wheelDeltaY, Window view, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey);
|
| + /** @domName WheelEvent.deltaY */
|
| + num get deltaY;
|
| +
|
| + /** @domName WheelEvent.deltaMode */
|
| + int get deltaMode;
|
| }
|
| +// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
|
|
| class _WheelEventImpl extends _MouseEventImpl implements WheelEvent native "*WheelEvent" {
|
|
|
| final bool webkitDirectionInvertedFromDevice;
|
|
|
| - final int wheelDelta;
|
| + void initWebKitWheelEvent(int wheelDeltaX, int wheelDeltaY, _WindowImpl view, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) native;
|
| +
|
| +
|
| + num get deltaY {
|
| + if (JS('bool', '#.deltaY !== undefined', this)) {
|
| + // W3C WheelEvent
|
| + return this._deltaY;
|
| + } else if (JS('bool', '#.wheelDelta !== undefined', this)) {
|
| + // Chrome and IE
|
| + return this._wheelDelta;
|
| + } else if (JS('bool', '#.detail !== undefined', this)) {
|
| + // Firefox
|
| +
|
| + // Handle DOMMouseScroll case where it uses detail and the axis to
|
| + // differentiate.
|
| + if (JS('bool', '#.axis == MouseScrollEvent.VERTICAL_AXIS', this)) {
|
| + var detail = this._detail;
|
| + // Firefox is normally the number of lines to scale (normally 3)
|
| + // so multiply it by 40 to get pixels to move, matching IE & WebKit.
|
| + if (detail < 100) {
|
| + return detail * 40;
|
| + }
|
| + return detail;
|
| + }
|
| + return 0;
|
| + }
|
| + throw const UnsupportedOperationException(
|
| + 'deltaY is not supported');
|
| + }
|
| +
|
| + num get deltaX {
|
| + if (JS('bool', '#.deltaX !== undefined', this)) {
|
| + // W3C WheelEvent
|
| + return this._deltaX;
|
| + } else if (JS('bool', '#.wheelDeltaX !== undefined', this)) {
|
| + // Chrome
|
| + return this._wheelDeltaX;
|
| + } else if (JS('bool', '#.detail !== undefined', this)) {
|
| + // Firefox and IE.
|
| + // IE will have detail set but will not set axis.
|
| +
|
| + // Handle DOMMouseScroll case where it uses detail and the axis to
|
| + // differentiate.
|
| + if (JS('bool', '#.axis !== undefined && #.axis == MouseScrollEvent.HORIZONTAL_AXIS', this, this)) {
|
| + var detail = this._detail;
|
| + // Firefox is normally the number of lines to scale (normally 3)
|
| + // so multiply it by 40 to get pixels to move, matching IE & WebKit.
|
| + if (detail < 100) {
|
| + return detail * 40;
|
| + }
|
| + return detail;
|
| + }
|
| + return 0;
|
| + }
|
| + throw const UnsupportedOperationException(
|
| + 'deltaX is not supported');
|
| + }
|
|
|
| - final int wheelDeltaX;
|
| + int get deltaMode {
|
| + if (JS('bool', '!!#.deltaMode', this)) {
|
| + // If not available then we're poly-filling and doing pixel scroll.
|
| + return 0;
|
| + }
|
| + return this._deltaMode;
|
| + }
|
|
|
| - final int wheelDeltaY;
|
| + num get _deltaY() native 'return this.deltaY';
|
| + num get _deltaX() native 'return this.deltaX';
|
| + num get _wheelDelta() native 'return this.wheelDelta';
|
| + num get _wheelDeltaX() native 'return this.wheelDeltaX';
|
| + num get _detail() native 'return this.detail';
|
| + int get _deltaMode() native 'return this.deltaMode';
|
|
|
| - void initWebKitWheelEvent(int wheelDeltaX, int wheelDeltaY, _WindowImpl view, int screenX, int screenY, int clientX, int clientY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) native;
|
| }
|
| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| @@ -41859,6 +41941,11 @@ class _Device {
|
| * Determines if the current device is running Firefox.
|
| */
|
| static bool get isFirefox => userAgent.contains("Firefox", 0);
|
| +
|
| + /**
|
| + * Determines if the current device is running WebKit.
|
| + */
|
| + static bool get isWebKit => !isOpera && userAgent.contains("WebKit", 0);
|
| }
|
| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| // for details. All rights reserved. Use of this source code is governed by a
|
|
|