@@ -125,6 +125,28 @@ export function initTableEditor (editor) {
125125 smartCursor : true ,
126126 formatType : FormatType . NORMAL
127127 } )
128+
129+ // Flag to track if shortcuts are enabled
130+ let shortcutsEnabled = true
131+
132+ // Method to enable/disable shortcuts
133+ tableEditor . setShortcutsEnabled = function ( enabled ) {
134+ shortcutsEnabled = enabled
135+ // If shortcuts are disabled and currently active, remove the keymap
136+ if ( ! enabled && lastActive ) {
137+ editor . removeKeyMap ( keyMap )
138+ } else if ( enabled && lastActive ) {
139+ // If shortcuts are enabled and cursor is in table, add the keymap back
140+ editor . addKeyMap ( keyMap )
141+ }
142+ }
143+
144+ // Check cookie for saved preference
145+ const cookieDisableTableShortcuts = window . Cookies && window . Cookies . get ( 'preferences-disable-table-shortcuts' )
146+ if ( cookieDisableTableShortcuts && cookieDisableTableShortcuts === 'true' ) {
147+ shortcutsEnabled = false
148+ }
149+
128150 // keymap of the commands
129151 // from https://github.com/susisu/mte-demo/blob/master/src/main.js
130152 const keyMap = CodeMirror . normalizeKeyMap ( {
@@ -178,7 +200,10 @@ export function initTableEditor (editor) {
178200 if ( active ) {
179201 tableTools . show ( )
180202 tableTools . parent ( ) . scrollLeft ( tableTools . parent ( ) [ 0 ] . scrollWidth )
181- editor . addKeyMap ( keyMap )
203+ // Only add keymap if shortcuts are enabled
204+ if ( shortcutsEnabled ) {
205+ editor . addKeyMap ( keyMap )
206+ }
182207 } else {
183208 tableTools . hide ( )
184209 editor . removeKeyMap ( keyMap )
0 commit comments