Fix mouse coordinates inside transformed graphics objects
This commit is contained in:
parent
50df97f03d
commit
d9a06e417a
11
src/main.js
11
src/main.js
|
|
@ -1979,6 +1979,14 @@ class GraphicsObject {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
transformMouse(mouse) {
|
||||||
|
if (this.parent) {
|
||||||
|
mouse = this.parent.transformMouse(mouse)
|
||||||
|
}
|
||||||
|
mouse.x -= this.x
|
||||||
|
mouse.y -= this.y
|
||||||
|
return mouse
|
||||||
|
}
|
||||||
addShape(shape, sendToBack=false) {
|
addShape(shape, sendToBack=false) {
|
||||||
if (sendToBack) {
|
if (sendToBack) {
|
||||||
this.currentFrame.shapes.unshift(shape)
|
this.currentFrame.shapes.unshift(shape)
|
||||||
|
|
@ -2749,6 +2757,7 @@ function stage() {
|
||||||
scroller.appendChild(stageWrapper)
|
scroller.appendChild(stageWrapper)
|
||||||
stage.addEventListener("mousedown", (e) => {
|
stage.addEventListener("mousedown", (e) => {
|
||||||
let mouse = getMousePos(stage, e)
|
let mouse = getMousePos(stage, e)
|
||||||
|
mouse = context.activeObject.transformMouse(mouse)
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case "rectangle":
|
case "rectangle":
|
||||||
case "ellipse":
|
case "ellipse":
|
||||||
|
|
@ -2909,6 +2918,7 @@ function stage() {
|
||||||
context.dragDirection = undefined
|
context.dragDirection = undefined
|
||||||
context.selectionRect = undefined
|
context.selectionRect = undefined
|
||||||
let mouse = getMousePos(stage, e)
|
let mouse = getMousePos(stage, e)
|
||||||
|
mouse = context.activeObject.transformMouse(mouse)
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case "draw":
|
case "draw":
|
||||||
if (context.activeShape) {
|
if (context.activeShape) {
|
||||||
|
|
@ -2963,6 +2973,7 @@ function stage() {
|
||||||
})
|
})
|
||||||
stage.addEventListener("mousemove", (e) => {
|
stage.addEventListener("mousemove", (e) => {
|
||||||
let mouse = getMousePos(stage, e)
|
let mouse = getMousePos(stage, e)
|
||||||
|
mouse = context.activeObject.transformMouse(mouse)
|
||||||
context.mousePos = mouse
|
context.mousePos = mouse
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case "draw":
|
case "draw":
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue