@@ -511,8 +511,11 @@ function adjustCardPosition(rect: DOMRect, onlyOutsideViewport = false) {
511
511
}
512
512
}
513
513
514
- function onMouseMove ( e : MouseEvent ) {
515
- if ( zenMode ( ) && cardDisabledInZenMode ( ) ) {
514
+ let toQuickMarkWord : string
515
+ let holdKey : string | null = null
516
+
517
+ function onMouseMove ( e : MouseEvent , slient = false ) {
518
+ if ( ! slient && zenMode ( ) && cardDisabledInZenMode ( ) ) {
516
519
return false
517
520
}
518
521
@@ -526,6 +529,12 @@ function onMouseMove(e: MouseEvent) {
526
529
if ( range ) {
527
530
const word = range . toString ( ) . trim ( ) . toLowerCase ( )
528
531
532
+ // for quick mark as known, don't show card
533
+ if ( ! isCardVisible ( ) && slient ) {
534
+ toQuickMarkWord = word
535
+ return false
536
+ }
537
+
529
538
if ( inDirecting ) {
530
539
inDirecting = false
531
540
return false
@@ -559,37 +568,65 @@ function onMouseClick(e: MouseEvent) {
559
568
}
560
569
}
561
570
571
+ function onAuxclick ( e : MouseEvent ) {
572
+ console . log ( e )
573
+ e . preventDefault ( )
574
+ if ( toQuickMarkWord ) {
575
+ console . log ( 'quick mark as known' , toQuickMarkWord )
576
+ e . stopImmediatePropagation ( )
577
+ e . preventDefault ( )
578
+ markAsKnown ( toQuickMarkWord )
579
+ setCurWord ( '' )
580
+ hidePopupDelay ( 0 )
581
+ explode ( e . pageX , e . pageY )
582
+ toQuickMarkWord = ''
583
+ return false
584
+ }
585
+ }
586
+
562
587
let waitMouseKeyTask : Function | null
563
588
564
589
function preMouseMove ( e : MouseEvent ) {
565
- // skip when redirecting in card dictionary
566
590
waitMouseKeyTask = null
591
+ toQuickMarkWord = ''
592
+
567
593
const mouseKey = settings ( ) . mosueKey
568
594
if ( mouseKey !== 'NONE' && ! e [ mouseKey ] ) {
569
595
waitMouseKeyTask = ( ) => {
570
- console . log ( 'onMouseMove' )
571
596
onMouseMove ( e )
572
597
}
573
598
} else {
574
- onMouseMove ( e )
599
+ onMouseMove ( e , holdKey === 'z' )
575
600
}
576
601
}
577
602
578
603
function onKeyDown ( e : KeyboardEvent ) {
604
+ holdKey = e . key
579
605
if ( e [ settings ( ) . mosueKey ] ) {
580
606
waitMouseKeyTask && waitMouseKeyTask ( )
581
607
}
582
608
}
583
609
610
+ function onKeyUp ( e : KeyboardEvent ) {
611
+ holdKey = null
612
+ if ( e [ settings ( ) . mosueKey ] ) {
613
+ waitMouseKeyTask = null
614
+ }
615
+ }
616
+
584
617
function bindEvents ( ) {
585
618
document . addEventListener ( 'mousemove' , preMouseMove )
586
619
document . addEventListener ( 'keydown' , onKeyDown )
620
+ document . addEventListener ( 'keyup' , onKeyUp )
587
621
// hide popup when click outside card
588
622
document . addEventListener ( 'click' , onMouseClick )
623
+ document . addEventListener ( 'auxclick' , onAuxclick )
589
624
}
590
625
591
626
function unbindEvents ( ) {
592
627
document . removeEventListener ( 'mousemove' , preMouseMove )
593
628
document . removeEventListener ( 'keydown' , onKeyDown )
629
+ document . removeEventListener ( 'keyup' , onKeyUp )
594
630
document . removeEventListener ( 'click' , onMouseClick )
631
+ document . removeEventListener ( 'auxclick' , onAuxclick )
595
632
}
0 commit comments