Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1176)

Unified Diff: Source/core/inspector/InspectorOverlayPage.html

Issue 1310533007: Devtools[LayoutEditor]: show resizer cursor over anchors (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/web/ChromeClientImpl.h » ('j') | Source/web/ChromeClientImpl.cpp » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/inspector/InspectorOverlayPage.html
diff --git a/Source/core/inspector/InspectorOverlayPage.html b/Source/core/inspector/InspectorOverlayPage.html
index 52fc463cf6e9023fce988a3f5b48beda9333133f..f822541446d5883f9fd892bbd140b34c69d00c01 100644
--- a/Source/core/inspector/InspectorOverlayPage.html
+++ b/Source/core/inspector/InspectorOverlayPage.html
@@ -837,7 +837,7 @@ function createAnchor(anchorInfo)
function calculateDelta(deltaVector, moveDelta)
{
- return (deltaVector.x * moveDelta.x + deltaVector.y * moveDelta.y) / Math.sqrt(deltaVector.x * deltaVector.x + deltaVector.y * deltaVector.y);
+ return scalarProduct(deltaVector, moveDelta) / Math.sqrt(scalarProduct(deltaVector, deltaVector));
}
function onAnchorMouseDown(anchorInfo, event)
@@ -865,6 +865,17 @@ function onDragMove(mouseDownPoint, deltaVector, event)
InspectorOverlayHost.changeProperty(calculateDelta(deltaVector, new Point(event.screenX - mouseDownPoint.x, event.screenY - mouseDownPoint.y)));
}
+function onDragEnd(event)
+{
+ document.removeEventListener("mousemove", boundDragMove);
+ delete window.boundDragMove;
+ delete window.draggedPropertyName;
+ document.removeEventListener("mouseup", onDragEnd);
+ event.preventDefault();
+ InspectorOverlayHost.endPropertyChange();
+ resetLabelCanvas();
+}
+
function showLabel(anchorInfo, showLongDescription)
{
var context = labelsCanvas.getContext("2d");
@@ -899,19 +910,11 @@ function showLabels(type, fullLabelName)
selectedAnchorInfo = anchorInfo;
}
- if (selectedAnchorInfo)
- showLabel(selectedAnchorInfo, true);
-}
+ if (!selectedAnchorInfo)
+ return;
-function onDragEnd(event)
-{
- document.removeEventListener("mousemove", boundDragMove);
- delete window.boundDragMove;
- delete window.draggedPropertyName;
- document.removeEventListener("mouseup", onDragEnd);
- event.preventDefault();
- InspectorOverlayHost.endPropertyChange();
- resetLabelCanvas();
+ showLabel(selectedAnchorInfo, true);
+ document.body.style.cursor = chooseAnchorPointer(selectedAnchorInfo.deltaVector);
}
function onAnchorMouseMove(anchorInfo)
@@ -1028,16 +1031,42 @@ function onGlobalMouseMove(event)
for (var type of types) {
var path = hoverableAreas.get(type);
if (path && context.isPointInPath(path, deviceScaleFactor * event.x, deviceScaleFactor * event.y)) {
+ event.preventDefault();
showLabels(type);
- break;
+ return;
}
}
+ resetLabelCanvas();
}
function resetLabelCanvas()
{
delete window.labelCanvasState;
resetCanvas(labelsCanvas);
+ if (!window.draggedPropertyName && document.body.style.cursor)
+ document.body.style.cursor = "";
+}
+
+function scalarProduct(v1, v2)
+{
+ return v1.x * v2.x + v1.y * v2.y;
+}
+
+var pointers = [ {name: "ns-resize", vector: new Point(0, -1)}, {name: "ew-resize", vector: new Point(-1, 0)},
+ {name: "ns-resize", vector: new Point(0, 1)}, {name: "ew-resize", vector: new Point(1, 0)}];
+
+function chooseAnchorPointer(direction)
+{
+ var maxValue = scalarProduct(direction, pointers[0].vector);
+ var maxIndex = 0;
+ for (var i = 1; i < pointers.length; ++i) {
+ var currentValue = scalarProduct(direction, pointers[i].vector);
+ if (currentValue > maxValue) {
+ maxValue = currentValue;
+ maxIndex = i;
+ }
+ }
+ return pointers[maxIndex].name;
}
window.addEventListener("DOMContentLoaded", onLoaded);
« no previous file with comments | « no previous file | Source/web/ChromeClientImpl.h » ('j') | Source/web/ChromeClientImpl.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698