@@ -70,6 +70,11 @@ export default class ScreenShort {
70
70
71
71
// 鼠标点击状态
72
72
private clickFlag = false ;
73
+ // 鼠标拖动状态
74
+ private dragFlag = false ;
75
+ // 上一个裁剪框坐标信息
76
+ private drawGraphPrevX = 0 ;
77
+ private drawGraphPrevY = 0 ;
73
78
private fontSize = 17 ;
74
79
// 最大可撤销次数
75
80
private maxUndoNum = 15 ;
@@ -422,6 +427,9 @@ export default class ScreenShort {
422
427
this . movePosition . moveStartX = mouseX ;
423
428
this . movePosition . moveStartY = mouseY ;
424
429
} else {
430
+ // 保存当前裁剪框的坐标
431
+ this . drawGraphPrevX = this . drawGraphPosition . startX ;
432
+ this . drawGraphPrevY = this . drawGraphPosition . startY ;
425
433
// 绘制裁剪框,记录当前鼠标开始坐标
426
434
this . drawGraphPosition . startX = mouseX ;
427
435
this . drawGraphPosition . startY = mouseY ;
@@ -436,6 +444,11 @@ export default class ScreenShort {
436
444
this . data . getToolName ( ) == "undo"
437
445
)
438
446
return ;
447
+
448
+ // 工具栏未选择且鼠标处于按下状态时, 修改拖动状态为true
449
+ if ( ! this . data . getToolClickStatus ( ) && this . data . getDragging ( ) ) {
450
+ this . dragFlag = true ;
451
+ }
439
452
this . clickFlag = false ;
440
453
// 获取裁剪框位置信息
441
454
const { startX, startY, width, height } = this . drawGraphPosition ;
@@ -546,6 +559,17 @@ export default class ScreenShort {
546
559
// 绘制结束
547
560
this . data . setDragging ( false ) ;
548
561
this . data . setDraggingTrim ( false ) ;
562
+
563
+ // 鼠标尚未拖动且工具栏未选择则不修改工具栏位置
564
+ if ( ! this . dragFlag && ! this . data . getToolClickStatus ( ) ) {
565
+ // 复原裁剪框的坐标
566
+ this . drawGraphPosition . startX = this . drawGraphPrevX ;
567
+ this . drawGraphPosition . startY = this . drawGraphPrevY ;
568
+ // 显示截图工具栏
569
+ this . data . setToolStatus ( true ) ;
570
+ return ;
571
+ }
572
+
549
573
if ( this . screenShortController == null || this . screenShortCanvas == null ) {
550
574
return ;
551
575
}
@@ -571,6 +595,8 @@ export default class ScreenShort {
571
595
this . screenShortController . style . cursor = "move" ;
572
596
// 显示截图工具栏
573
597
this . data . setToolStatus ( true ) ;
598
+ // 复原拖动状态
599
+ this . dragFlag = false ;
574
600
if ( this . toolController != null ) {
575
601
// 计算截图工具栏位置
576
602
const toolLocation = calculateToolLocation (
0 commit comments