Fix mouseup handler not getting called when mouse is released outside the canvas
This commit is contained in:
parent
8c0945813e
commit
a2cbc70d69
11
src/main.js
11
src/main.js
|
|
@ -3142,7 +3142,7 @@ function stage() {
|
||||||
updateUI()
|
updateUI()
|
||||||
updateInfopanel()
|
updateInfopanel()
|
||||||
})
|
})
|
||||||
stage.addEventListener("mouseup", (e) => {
|
stage.mouseup = (e) => {
|
||||||
context.mouseDown = false
|
context.mouseDown = false
|
||||||
context.dragging = false
|
context.dragging = false
|
||||||
context.dragDirection = undefined
|
context.dragDirection = undefined
|
||||||
|
|
@ -3201,11 +3201,18 @@ function stage() {
|
||||||
updateUI()
|
updateUI()
|
||||||
updateMenu()
|
updateMenu()
|
||||||
updateInfopanel()
|
updateInfopanel()
|
||||||
})
|
}
|
||||||
|
stage.addEventListener("mouseup", stage.mouseup)
|
||||||
stage.addEventListener("mousemove", (e) => {
|
stage.addEventListener("mousemove", (e) => {
|
||||||
let mouse = getMousePos(stage, e)
|
let mouse = getMousePos(stage, e)
|
||||||
mouse = context.activeObject.transformMouse(mouse)
|
mouse = context.activeObject.transformMouse(mouse)
|
||||||
context.mousePos = mouse
|
context.mousePos = mouse
|
||||||
|
// if mouse is released, even if it happened outside the stage
|
||||||
|
if (e.buttons==0 &&
|
||||||
|
(context.mouseDown || context.dragging || context.dragDirection || context.selectionRect)) {
|
||||||
|
stage.mouseup(e)
|
||||||
|
return
|
||||||
|
}
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case "draw":
|
case "draw":
|
||||||
context.activeCurve = undefined
|
context.activeCurve = undefined
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue