Changeset 146866 in webkit
- Timestamp:
- Mar 26, 2013 4:23:26 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r146860 r146866 1 2013-03-26 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Web Inspector: OverviewGrid. Dragged window may change its width due to accumulating rounding error. 4 https://bugs.webkit.org/show_bug.cgi?id=113138 5 6 Reviewed by Pavel Feldman. 7 8 The old version had problem with rounding because it recalculates the window size on each event. 9 The new version just calculates the dragging delta and moves the window 10 to the new position based on the initial values and the delta. 11 12 * inspector/front-end/OverviewGrid.js: 13 (WebInspector.OverviewGrid.Window.prototype._startWindowDragging): 14 (WebInspector.OverviewGrid.Window.prototype._windowDragging): 15 (WebInspector.OverviewGrid.Window.prototype._onMouseWheel): 16 1 17 2013-03-26 Kent Tamura <tkent@chromium.org> 2 18 -
trunk/Source/WebCore/inspector/front-end/OverviewGrid.js
r146753 r146866 306 306 _startWindowDragging: function(event) 307 307 { 308 var windowLeft = this._leftResizeElement.offsetLeft + WebInspector.OverviewGrid.ResizerOffset; 309 this._dragOffset = windowLeft - event.pageX; 308 this._dragStartPoint = event.pageX; 309 this._dragStartLeft = this.windowLeft; 310 this._dragStartRight = this.windowRight; 310 311 return true; 311 312 }, … … 316 317 _windowDragging: function(event) 317 318 { 318 var windowLeft = this._leftResizeElement.offsetLeft + WebInspector.OverviewGrid.ResizerOffset;319 var start = this._dragOffset + event.pageX;320 this._moveWindow(start);321 319 event.preventDefault(); 320 var delta = (event.pageX - this._dragStartPoint) / this._parentElement.clientWidth; 321 if (this._dragStartLeft + delta < 0) 322 delta = -this._dragStartLeft; 323 324 if (this._dragStartRight + delta > 1) 325 delta = 1 - this._dragStartRight; 326 327 this._setWindow(this._dragStartLeft + delta, this._dragStartRight + delta); 322 328 }, 323 329 … … 328 334 { 329 335 delete this._dragOffset; 330 },331 332 /**333 * @param {number} start334 */335 _moveWindow: function(start)336 {337 var windowLeft = this._leftResizeElement.offsetLeft + WebInspector.OverviewGrid.ResizerOffset;338 var windowRight = this._rightResizeElement.offsetLeft + WebInspector.OverviewGrid.ResizerOffset;339 var windowSize = windowRight - windowLeft;340 var end = start + windowSize;341 342 if (start < 0) {343 start = 0;344 end = windowSize;345 }346 347 if (end > this._parentElement.clientWidth) {348 end = this._parentElement.clientWidth;349 start = end - windowSize;350 }351 this._setWindowPosition(start, end);352 336 }, 353 337 … … 429 413 } 430 414 if (typeof event.wheelDeltaX === "number" && event.wheelDeltaX) { 415 var offset = Math.round(event.wheelDeltaX * WebInspector.OverviewGrid.WindowScrollSpeedFactor); 431 416 var windowLeft = this._leftResizeElement.offsetLeft + WebInspector.OverviewGrid.ResizerOffset; 432 var start = windowLeft - Math.round(event.wheelDeltaX * WebInspector.OverviewGrid.WindowScrollSpeedFactor); 433 this._moveWindow(start); 417 var windowRight = this._rightResizeElement.offsetLeft + WebInspector.OverviewGrid.ResizerOffset; 418 419 if (windowLeft - offset < 0) 420 offset = windowLeft; 421 422 if (windowRight - offset > this._parentElement.clientWidth) 423 offset = windowRight - this._parentElement.clientWidth; 424 425 this._setWindowPosition(windowLeft - offset, windowRight - offset); 426 434 427 event.preventDefault(); 435 428 }
Note: See TracChangeset
for help on using the changeset viewer.