| Index: third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js b/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js
|
| index 845ae7c8973a6e4c59b151a6bb52058008cb870e..b13b915518cfc6c48964293ff5041f67be49ae87 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js
|
| @@ -115,127 +115,127 @@ WebInspector.DragHandler.prototype = {
|
| WebInspector.DragHandler._glassPane.dispose();
|
| delete WebInspector.DragHandler._glassPane;
|
| delete WebInspector.DragHandler._documentForMouseOut;
|
| - }
|
| -};
|
| -
|
| -/**
|
| - * @param {!Element} targetElement
|
| - * @param {?function(!MouseEvent):boolean} elementDragStart
|
| - * @param {function(!MouseEvent)} elementDrag
|
| - * @param {?function(!MouseEvent)} elementDragEnd
|
| - * @param {string} cursor
|
| - * @param {!Event} event
|
| - */
|
| -WebInspector.DragHandler.prototype.elementDragStart = function(targetElement, elementDragStart, elementDrag, elementDragEnd, cursor, event)
|
| -{
|
| - // Only drag upon left button. Right will likely cause a context menu. So will ctrl-click on mac.
|
| - if (event.button || (WebInspector.isMac() && event.ctrlKey))
|
| - return;
|
| -
|
| - if (this._elementDraggingEventListener)
|
| - return;
|
| -
|
| - if (elementDragStart && !elementDragStart(/** @type {!MouseEvent} */ (event)))
|
| - return;
|
| + },
|
|
|
| - var targetDocument = event.target.ownerDocument;
|
| - this._elementDraggingEventListener = elementDrag;
|
| - this._elementEndDraggingEventListener = elementDragEnd;
|
| - console.assert((WebInspector.DragHandler._documentForMouseOut || targetDocument) === targetDocument,
|
| - "Dragging on multiple documents.");
|
| - WebInspector.DragHandler._documentForMouseOut = targetDocument;
|
| - this._dragEventsTargetDocument = targetDocument;
|
| - this._dragEventsTargetDocumentTop = targetDocument.defaultView.top.document;
|
| -
|
| - targetDocument.addEventListener("mousemove", this._elementDragMove, true);
|
| - targetDocument.addEventListener("mouseup", this._elementDragEnd, true);
|
| - targetDocument.addEventListener("mouseout", this._mouseOutWhileDragging, true);
|
| - if (targetDocument !== this._dragEventsTargetDocumentTop)
|
| - this._dragEventsTargetDocumentTop.addEventListener("mouseup", this._elementDragEnd, true);
|
| -
|
| - if (typeof cursor === "string") {
|
| - this._restoreCursorAfterDrag = restoreCursor.bind(this, targetElement.style.cursor);
|
| - targetElement.style.cursor = cursor;
|
| - targetDocument.body.style.cursor = cursor;
|
| - }
|
| /**
|
| - * @param {string} oldCursor
|
| - * @this {WebInspector.DragHandler}
|
| + * @param {!Element} targetElement
|
| + * @param {?function(!MouseEvent):boolean} elementDragStart
|
| + * @param {function(!MouseEvent)} elementDrag
|
| + * @param {?function(!MouseEvent)} elementDragEnd
|
| + * @param {string} cursor
|
| + * @param {!Event} event
|
| */
|
| - function restoreCursor(oldCursor)
|
| + elementDragStart: function(targetElement, elementDragStart, elementDrag, elementDragEnd, cursor, event)
|
| {
|
| - targetDocument.body.style.removeProperty("cursor");
|
| - targetElement.style.cursor = oldCursor;
|
| - this._restoreCursorAfterDrag = null;
|
| - }
|
| - event.preventDefault();
|
| -};
|
| + // Only drag upon left button. Right will likely cause a context menu. So will ctrl-click on mac.
|
| + if (event.button || (WebInspector.isMac() && event.ctrlKey))
|
| + return;
|
|
|
| -WebInspector.DragHandler.prototype._mouseOutWhileDragging = function()
|
| -{
|
| - this._unregisterMouseOutWhileDragging();
|
| - this._createGlassPane();
|
| -};
|
| + if (this._elementDraggingEventListener)
|
| + return;
|
|
|
| -WebInspector.DragHandler.prototype._unregisterMouseOutWhileDragging = function()
|
| -{
|
| - if (!WebInspector.DragHandler._documentForMouseOut)
|
| - return;
|
| - WebInspector.DragHandler._documentForMouseOut.removeEventListener("mouseout", this._mouseOutWhileDragging, true);
|
| -};
|
| + if (elementDragStart && !elementDragStart(/** @type {!MouseEvent} */ (event)))
|
| + return;
|
|
|
| -WebInspector.DragHandler.prototype._unregisterDragEvents = function()
|
| -{
|
| - if (!this._dragEventsTargetDocument)
|
| - return;
|
| - this._dragEventsTargetDocument.removeEventListener("mousemove", this._elementDragMove, true);
|
| - this._dragEventsTargetDocument.removeEventListener("mouseup", this._elementDragEnd, true);
|
| - if (this._dragEventsTargetDocument !== this._dragEventsTargetDocumentTop)
|
| - this._dragEventsTargetDocumentTop.removeEventListener("mouseup", this._elementDragEnd, true);
|
| - delete this._dragEventsTargetDocument;
|
| - delete this._dragEventsTargetDocumentTop;
|
| -};
|
| + var targetDocument = event.target.ownerDocument;
|
| + this._elementDraggingEventListener = elementDrag;
|
| + this._elementEndDraggingEventListener = elementDragEnd;
|
| + console.assert((WebInspector.DragHandler._documentForMouseOut || targetDocument) === targetDocument,
|
| + "Dragging on multiple documents.");
|
| + WebInspector.DragHandler._documentForMouseOut = targetDocument;
|
| + this._dragEventsTargetDocument = targetDocument;
|
| + this._dragEventsTargetDocumentTop = targetDocument.defaultView.top.document;
|
| +
|
| + targetDocument.addEventListener("mousemove", this._elementDragMove, true);
|
| + targetDocument.addEventListener("mouseup", this._elementDragEnd, true);
|
| + targetDocument.addEventListener("mouseout", this._mouseOutWhileDragging, true);
|
| + if (targetDocument !== this._dragEventsTargetDocumentTop)
|
| + this._dragEventsTargetDocumentTop.addEventListener("mouseup", this._elementDragEnd, true);
|
| +
|
| + if (typeof cursor === "string") {
|
| + this._restoreCursorAfterDrag = restoreCursor.bind(this, targetElement.style.cursor);
|
| + targetElement.style.cursor = cursor;
|
| + targetDocument.body.style.cursor = cursor;
|
| + }
|
| + /**
|
| + * @param {string} oldCursor
|
| + * @this {WebInspector.DragHandler}
|
| + */
|
| + function restoreCursor(oldCursor)
|
| + {
|
| + targetDocument.body.style.removeProperty("cursor");
|
| + targetElement.style.cursor = oldCursor;
|
| + this._restoreCursorAfterDrag = null;
|
| + }
|
| + event.preventDefault();
|
| + },
|
|
|
| -/**
|
| - * @param {!Event} event
|
| - */
|
| -WebInspector.DragHandler.prototype._elementDragMove = function(event)
|
| -{
|
| - if (event.buttons !== 1) {
|
| - this._elementDragEnd(event);
|
| - return;
|
| - }
|
| - if (this._elementDraggingEventListener(/** @type {!MouseEvent} */ (event)))
|
| - this._cancelDragEvents(event);
|
| -};
|
| + _mouseOutWhileDragging: function()
|
| + {
|
| + this._unregisterMouseOutWhileDragging();
|
| + this._createGlassPane();
|
| + },
|
|
|
| -/**
|
| - * @param {!Event} event
|
| - */
|
| -WebInspector.DragHandler.prototype._cancelDragEvents = function(event)
|
| -{
|
| - this._unregisterDragEvents();
|
| - this._unregisterMouseOutWhileDragging();
|
| + _unregisterMouseOutWhileDragging: function()
|
| + {
|
| + if (!WebInspector.DragHandler._documentForMouseOut)
|
| + return;
|
| + WebInspector.DragHandler._documentForMouseOut.removeEventListener("mouseout", this._mouseOutWhileDragging, true);
|
| + },
|
| +
|
| + _unregisterDragEvents: function()
|
| + {
|
| + if (!this._dragEventsTargetDocument)
|
| + return;
|
| + this._dragEventsTargetDocument.removeEventListener("mousemove", this._elementDragMove, true);
|
| + this._dragEventsTargetDocument.removeEventListener("mouseup", this._elementDragEnd, true);
|
| + if (this._dragEventsTargetDocument !== this._dragEventsTargetDocumentTop)
|
| + this._dragEventsTargetDocumentTop.removeEventListener("mouseup", this._elementDragEnd, true);
|
| + delete this._dragEventsTargetDocument;
|
| + delete this._dragEventsTargetDocumentTop;
|
| + },
|
| +
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _elementDragMove: function(event)
|
| + {
|
| + if (event.buttons !== 1) {
|
| + this._elementDragEnd(event);
|
| + return;
|
| + }
|
| + if (this._elementDraggingEventListener(/** @type {!MouseEvent} */ (event)))
|
| + this._cancelDragEvents(event);
|
| + },
|
|
|
| - if (this._restoreCursorAfterDrag)
|
| - this._restoreCursorAfterDrag();
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _cancelDragEvents: function(event)
|
| + {
|
| + this._unregisterDragEvents();
|
| + this._unregisterMouseOutWhileDragging();
|
|
|
| - this._disposeGlassPane();
|
| + if (this._restoreCursorAfterDrag)
|
| + this._restoreCursorAfterDrag();
|
|
|
| - delete this._elementDraggingEventListener;
|
| - delete this._elementEndDraggingEventListener;
|
| -};
|
| + this._disposeGlassPane();
|
|
|
| -/**
|
| - * @param {!Event} event
|
| - */
|
| -WebInspector.DragHandler.prototype._elementDragEnd = function(event)
|
| -{
|
| - var elementDragEnd = this._elementEndDraggingEventListener;
|
| - this._cancelDragEvents(/** @type {!MouseEvent} */ (event));
|
| - event.preventDefault();
|
| - if (elementDragEnd)
|
| - elementDragEnd(/** @type {!MouseEvent} */ (event));
|
| + delete this._elementDraggingEventListener;
|
| + delete this._elementEndDraggingEventListener;
|
| + },
|
| +
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _elementDragEnd: function(event)
|
| + {
|
| + var elementDragEnd = this._elementEndDraggingEventListener;
|
| + this._cancelDragEvents(/** @type {!MouseEvent} */ (event));
|
| + event.preventDefault();
|
| + if (elementDragEnd)
|
| + elementDragEnd(/** @type {!MouseEvent} */ (event));
|
| + }
|
| };
|
|
|
| /**
|
|
|