@@ -549,6 +549,12 @@ <h1 class="reveal" style="font-size:clamp(2rem,6vw,4.5rem)">Thank you!</h1>
549549</ section >
550550
551551< script >
552+ // Shared check: is the user typing in a text field?
553+ function isTyping ( e ) {
554+ const tag = e . target . tagName ;
555+ return tag === 'TEXTAREA' || tag === 'INPUT' || ! ! e . target . getAttribute ( 'contenteditable' ) ;
556+ }
557+
552558class SlidePresentation {
553559 constructor ( ) {
554560 this . slides = document . querySelectorAll ( '.slide' ) ;
@@ -579,7 +585,7 @@ <h1 class="reveal" style="font-size:clamp(2rem,6vw,4.5rem)">Thank you!</h1>
579585 }
580586 setupKeyboardNav ( ) {
581587 document . addEventListener ( 'keydown' , ( e ) => {
582- if ( e . target . getAttribute ( 'contenteditable' ) || e . target . tagName === 'TEXTAREA' || e . target . tagName === 'INPUT' ) return ;
588+ if ( isTyping ( e ) ) return ;
583589 switch ( e . key ) {
584590 case 'ArrowDown' : case 'ArrowRight' : case ' ' : case 'PageDown' :
585591 e . preventDefault ( ) ; this . goToSlide ( this . currentSlide + 1 ) ; break ;
@@ -655,7 +661,7 @@ <h1 class="reveal" style="font-size:clamp(2rem,6vw,4.5rem)">Thank you!</h1>
655661 }
656662 setupKeyboard ( ) {
657663 document . addEventListener ( 'keydown' , ( e ) => {
658- if ( ( e . key === 'e' || e . key === 'E' ) && ! e . target . getAttribute ( 'contenteditable' ) ) this . toggleEditMode ( ) ;
664+ if ( ( e . key === 'e' || e . key === 'E' ) && ! isTyping ( e ) ) this . toggleEditMode ( ) ;
659665 if ( e . ctrlKey && e . key === 's' && this . isActive ) { e . preventDefault ( ) ; this . exportFile ( ) ; }
660666 } ) ;
661667 }
@@ -741,8 +747,8 @@ <h1 class="reveal" style="font-size:clamp(2rem,6vw,4.5rem)">Thank you!</h1>
741747 }
742748 setupKeyboard ( ) {
743749 document . addEventListener ( 'keydown' , ( e ) => {
744- if ( e . target === this . textarea ) return ;
745- if ( ( e . key === 'n' || e . key === 'N' ) && ! e . target . getAttribute ( 'contenteditable' ) ) this . toggle ( ) ;
750+ if ( isTyping ( e ) ) return ;
751+ if ( e . key === 'n' || e . key === 'N' ) this . toggle ( ) ;
746752 } ) ;
747753 this . textarea . addEventListener ( 'keydown' , ( e ) => {
748754 if ( e . key === 'Escape' ) { this . toggle ( ) ; e . preventDefault ( ) ; }
@@ -858,7 +864,7 @@ <h1 class="reveal" style="font-size:clamp(2rem,6vw,4.5rem)">Thank you!</h1>
858864
859865 setupKeyboard ( ) {
860866 document . addEventListener ( 'keydown' , ( e ) => {
861- if ( e . target . getAttribute ( 'contenteditable' ) ) return ;
867+ if ( isTyping ( e ) ) return ;
862868 if ( e . key === 's' || e . key === 'S' ) { if ( ! e . ctrlKey && ! e . metaKey ) this . openPresenterWindow ( ) ; }
863869 if ( e . key === 'b' || e . key === 'B' ) this . toggleBlackout ( ) ;
864870 } ) ;
0 commit comments