Title: [140335] trunk/Source/WebCore
- Revision
- 140335
- Author
- [email protected]
- Date
- 2013-01-21 08:07:43 -0800 (Mon, 21 Jan 2013)
Log Message
Web Inspector: data grid resize is slow
https://bugs.webkit.org/show_bug.cgi?id=107291
Reviewed by Pavel Feldman.
- avoid (most of) unnecessary relayouts and style recalculation when dragging data grid resizer.
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._positionResizers):
(WebInspector.DataGrid.prototype._resizerDragging):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (140334 => 140335)
--- trunk/Source/WebCore/ChangeLog 2013-01-21 15:33:57 UTC (rev 140334)
+++ trunk/Source/WebCore/ChangeLog 2013-01-21 16:07:43 UTC (rev 140335)
@@ -1,3 +1,16 @@
+2013-01-18 Andrey Kosyakov <[email protected]>
+
+ Web Inspector: data grid resize is slow
+ https://bugs.webkit.org/show_bug.cgi?id=107291
+
+ Reviewed by Pavel Feldman.
+
+ - avoid (most of) unnecessary relayouts and style recalculation when dragging data grid resizer.
+
+ * inspector/front-end/DataGrid.js:
+ (WebInspector.DataGrid.prototype._positionResizers):
+ (WebInspector.DataGrid.prototype._resizerDragging):
+
2013-01-21 Vladislav Kaznacheev <[email protected]>
[Inspector] Layout Elements panel in a single column when docked right.
Modified: trunk/Source/WebCore/inspector/front-end/DataGrid.js (140334 => 140335)
--- trunk/Source/WebCore/inspector/front-end/DataGrid.js 2013-01-21 15:33:57 UTC (rev 140334)
+++ trunk/Source/WebCore/inspector/front-end/DataGrid.js 2013-01-21 16:07:43 UTC (rev 140335)
@@ -684,7 +684,10 @@
if (!this._columnsArray[i].hidden) {
resizer.style.removeProperty("display");
- resizer.style.left = left + "px";
+ if (resizer._position !== left) {
+ resizer._position = left;
+ resizer.style.left = left + "px";
+ }
resizer.leftNeighboringColumnIndex = i;
if (previousResizer)
previousResizer.rightNeighboringColumnIndex = i;
@@ -974,6 +977,8 @@
if (!resizer)
return;
+ var tableWidth = this._dataTable.offsetWidth; // Cache it early, before we invalidate layout.
+
// Constrain the dragpoint to be within the containing div of the
// datagrid.
var dragPoint = event.clientX - this.element.totalOffsetLeft();
@@ -1004,11 +1009,11 @@
resizer.style.left = (dragPoint - this.CenterResizerOverBorderAdjustment) + "px";
- var percentLeftColumn = (((dragPoint - leftEdgeOfPreviousColumn) / this._dataTable.offsetWidth) * 100) + "%";
+ var percentLeftColumn = (((dragPoint - leftEdgeOfPreviousColumn) / tableWidth) * 100) + "%";
this._headerTableColumnGroup.children[leftCellIndex].style.width = percentLeftColumn;
this._dataTableColumnGroup.children[leftCellIndex].style.width = percentLeftColumn;
- var percentRightColumn = (((rightEdgeOfNextColumn - dragPoint) / this._dataTable.offsetWidth) * 100) + "%";
+ var percentRightColumn = (((rightEdgeOfNextColumn - dragPoint) / tableWidth) * 100) + "%";
this._headerTableColumnGroup.children[rightCellIndex].style.width = percentRightColumn;
this._dataTableColumnGroup.children[rightCellIndex].style.width = percentRightColumn;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes