Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
ComfyUI
Commits
6ab42054
Commit
6ab42054
authored
Jan 31, 2024
by
Lt.Dr.Data
Browse files
feat: better pen support for mask editor
- alt-drag: erase - shift-drag(up/down): zoom in/out
parent
c5a369a3
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
4 deletions
+27
-4
web/extensions/core/maskeditor.js
web/extensions/core/maskeditor.js
+27
-4
No files found.
web/extensions/core/maskeditor.js
View file @
6ab42054
...
@@ -521,6 +521,19 @@ class MaskEditorDialog extends ComfyDialog {
...
@@ -521,6 +521,19 @@ class MaskEditorDialog extends ComfyDialog {
event
.
preventDefault
();
event
.
preventDefault
();
self
.
pan_move
(
self
,
event
);
self
.
pan_move
(
self
,
event
);
}
}
let
left_button_down
=
window
.
TouchEvent
&&
event
instanceof
TouchEvent
||
event
.
buttons
==
1
;
if
(
event
.
shiftKey
&&
left_button_down
)
{
self
.
drawing_mode
=
false
;
const
y
=
event
.
clientY
;
let
delta
=
(
self
.
zoom_lasty
-
y
)
*
0.005
;
self
.
zoom_ratio
=
Math
.
max
(
Math
.
min
(
10.0
,
self
.
last_zoom_ratio
-
delta
),
0.2
);
this
.
invalidatePanZoom
();
return
;
}
}
}
pan_move
(
self
,
event
)
{
pan_move
(
self
,
event
)
{
...
@@ -538,7 +551,7 @@ class MaskEditorDialog extends ComfyDialog {
...
@@ -538,7 +551,7 @@ class MaskEditorDialog extends ComfyDialog {
}
}
draw_move
(
self
,
event
)
{
draw_move
(
self
,
event
)
{
if
(
event
.
ctrlKey
)
{
if
(
event
.
ctrlKey
||
event
.
shiftKey
)
{
return
;
return
;
}
}
...
@@ -549,7 +562,10 @@ class MaskEditorDialog extends ComfyDialog {
...
@@ -549,7 +562,10 @@ class MaskEditorDialog extends ComfyDialog {
self
.
updateBrushPreview
(
self
);
self
.
updateBrushPreview
(
self
);
if
(
window
.
TouchEvent
&&
event
instanceof
TouchEvent
||
event
.
buttons
==
1
)
{
let
left_button_down
=
window
.
TouchEvent
&&
event
instanceof
TouchEvent
||
event
.
buttons
==
1
;
let
right_button_down
=
[
2
,
5
,
32
].
includes
(
event
.
buttons
);
if
(
!
event
.
altKey
&&
left_button_down
)
{
var
diff
=
performance
.
now
()
-
self
.
lasttime
;
var
diff
=
performance
.
now
()
-
self
.
lasttime
;
const
maskRect
=
self
.
maskCanvas
.
getBoundingClientRect
();
const
maskRect
=
self
.
maskCanvas
.
getBoundingClientRect
();
...
@@ -616,7 +632,7 @@ class MaskEditorDialog extends ComfyDialog {
...
@@ -616,7 +632,7 @@ class MaskEditorDialog extends ComfyDialog {
self
.
lasttime
=
performance
.
now
();
self
.
lasttime
=
performance
.
now
();
}
}
else
if
(
event
.
buttons
==
2
||
event
.
buttons
==
5
||
event
.
buttons
==
32
)
{
else
if
(
(
event
.
altKey
&&
left_button_down
)
||
right_button_down
)
{
const
maskRect
=
self
.
maskCanvas
.
getBoundingClientRect
();
const
maskRect
=
self
.
maskCanvas
.
getBoundingClientRect
();
const
x
=
(
event
.
offsetX
||
event
.
targetTouches
[
0
].
clientX
-
maskRect
.
left
)
/
self
.
zoom_ratio
;
const
x
=
(
event
.
offsetX
||
event
.
targetTouches
[
0
].
clientX
-
maskRect
.
left
)
/
self
.
zoom_ratio
;
const
y
=
(
event
.
offsetY
||
event
.
targetTouches
[
0
].
clientY
-
maskRect
.
top
)
/
self
.
zoom_ratio
;
const
y
=
(
event
.
offsetY
||
event
.
targetTouches
[
0
].
clientY
-
maskRect
.
top
)
/
self
.
zoom_ratio
;
...
@@ -690,12 +706,19 @@ class MaskEditorDialog extends ComfyDialog {
...
@@ -690,12 +706,19 @@ class MaskEditorDialog extends ComfyDialog {
self
.
drawing_mode
=
true
;
self
.
drawing_mode
=
true
;
event
.
preventDefault
();
event
.
preventDefault
();
if
(
event
.
shiftKey
)
{
self
.
zoom_lasty
=
event
.
clientY
;
self
.
last_zoom_ratio
=
self
.
zoom_ratio
;
return
;
}
const
maskRect
=
self
.
maskCanvas
.
getBoundingClientRect
();
const
maskRect
=
self
.
maskCanvas
.
getBoundingClientRect
();
const
x
=
(
event
.
offsetX
||
event
.
targetTouches
[
0
].
clientX
-
maskRect
.
left
)
/
self
.
zoom_ratio
;
const
x
=
(
event
.
offsetX
||
event
.
targetTouches
[
0
].
clientX
-
maskRect
.
left
)
/
self
.
zoom_ratio
;
const
y
=
(
event
.
offsetY
||
event
.
targetTouches
[
0
].
clientY
-
maskRect
.
top
)
/
self
.
zoom_ratio
;
const
y
=
(
event
.
offsetY
||
event
.
targetTouches
[
0
].
clientY
-
maskRect
.
top
)
/
self
.
zoom_ratio
;
self
.
maskCtx
.
beginPath
();
self
.
maskCtx
.
beginPath
();
if
(
event
.
button
==
0
)
{
if
(
!
event
.
altKey
&&
event
.
button
==
0
)
{
self
.
maskCtx
.
fillStyle
=
"
rgb(0,0,0)
"
;
self
.
maskCtx
.
fillStyle
=
"
rgb(0,0,0)
"
;
self
.
maskCtx
.
globalCompositeOperation
=
"
source-over
"
;
self
.
maskCtx
.
globalCompositeOperation
=
"
source-over
"
;
}
else
{
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment