1+ import {
2+ type LinesDisplay ,
3+ disableKeyHandler ,
4+ keyboardZoomPanStep ,
5+ keyboardZoomStep ,
6+ linesDisplay
7+ } from '../config' ;
18import {
29 algorithmsList ,
310 annotations ,
411 fixations ,
512 selectedAlgorithm ,
613 selectedFixation
714} from '../data' ;
8- import {
9- disableKeyHandler ,
10- keyboardZoomPanStep ,
11- keyboardZoomStep
12- } from '../config' ;
1315import {
1416 onMounted ,
1517 onUnmounted
@@ -36,6 +38,8 @@ import zoom from '../manager/zoom';
3638export const keyboardHandler = ( renderer : Renderer ) => {
3739 const annotation = annotationManager ( renderer ) ;
3840
41+ let prevSelectedDisplayMode : LinesDisplay = linesDisplay . value ;
42+
3943 const handler = ( ev : KeyboardEvent ) => {
4044 if ( ! disableKeyHandler . value ) {
4145 if ( isCharacterKey ( ev . key ) && ! ev . ctrlKey && ! ev . metaKey && ! ev . altKey ) {
@@ -46,7 +50,7 @@ export const keyboardHandler = ( renderer: Renderer ) => {
4650 false ,
4751 true
4852 ) ;
49- } else if ( isUndoCmd ( ev ) || ev . key === 'Backspace' || ev . key === 'Delete' ) {
53+ } else if ( isUndoCmd ( ev ) || ev . key === 'Backspace' ) {
5054 ev . preventDefault ( ) ;
5155 undo ( ) ;
5256 } else if ( isRedoCmd ( ev ) ) {
@@ -94,18 +98,37 @@ export const keyboardHandler = ( renderer: Renderer ) => {
9498 false
9599 ) ;
96100 } catch { /* empty */ }
101+ } else if ( ev . key === 'Delete' ) {
102+ // TODO: Update this keybind if needed
103+ annotation . markAsInvalid ( selectedFixation . value ) ;
104+ } else if ( ev . key === 'Enter' ) {
105+ if ( linesDisplay . value !== 'allalgos' ) {
106+ prevSelectedDisplayMode = linesDisplay . value ;
107+ linesDisplay . value = 'allalgos' ;
108+ }
97109 }
98110 }
99111 } ;
100112
113+ const keyUpHandler = ( ev : KeyboardEvent ) => {
114+ if ( ev . key === 'Enter' ) {
115+ linesDisplay . value = prevSelectedDisplayMode ;
116+ }
117+ } ;
118+
101119 onMounted ( ( ) => {
102120 document . addEventListener ( 'keydown' , handler ) ;
121+ document . addEventListener ( 'keyup' , keyUpHandler ) ;
103122 } ) ;
104123
105124 onUnmounted ( ( ) => {
106125 try {
107126 document . removeEventListener ( 'keydown' , handler ) ;
108127 } catch { /* empty */ }
128+
129+ try {
130+ document . removeEventListener ( 'keyup' , keyUpHandler ) ;
131+ } catch { /* empty */ }
109132 } ) ;
110133} ;
111134
0 commit comments