diff --git a/docs/User_Guide.md b/docs/User_Guide.md index 3d5ff16..81b93ae 100644 --- a/docs/User_Guide.md +++ b/docs/User_Guide.md @@ -92,6 +92,8 @@ We also provide some [Python tools](https://github.com/qurator-spk/neath/tree/ma | Down | Move one row down | | PageDown | Move page down | | PageUp | Move page up | +| Crtl+Up | Move entire table one row up | +| Crtl+Down| Move entire table one row down | |----------|--------------------------------------------| | s t | Start new sentence in current row | | m e | Merge current row with row above | diff --git a/neath.js b/neath.js index 40f1d37..a3eb254 100644 --- a/neath.js +++ b/neath.js @@ -854,37 +854,76 @@ function setupInterface(data, file, urls) { } }); - wnd_listener.simple_combo('up', - function() { - if (editingTd != null) return true; + wnd_listener.register_combo( + { + keys: 'meta up', + on_keydown: + function() { + if (editingTd != null) return true; + + stepsBackward(1); + }, + is_solitary: true + } + ); - let prev = $(':focus').closest('tr').prev('tr') + wnd_listener.register_combo( + { + keys: 'up', - let pos = $(':focus').closest('tr').children('.editable').index($(':focus')) + on_keydown: + function() { + if (editingTd != null) return true; - if (prev.length==0) { - stepsBackward(1); - } - else { - prev.children('.editable')[pos].focus(); - } - }); + let prev = $(':focus').closest('tr').prev('tr') - wnd_listener.simple_combo('down', - function() { - if (editingTd != null) return true; + let pos = $(':focus').closest('tr').children('.editable').index($(':focus')) - let next = $(':focus').closest('tr').next('tr') + if (prev.length==0) { + stepsBackward(1); + } + else { + prev.children('.editable')[pos].focus(); + } + }, + is_solitary : true + }); - let pos = $(':focus').closest('tr').children('.editable').index($(':focus')) + wnd_listener.register_combo( + { + keys: 'meta down', + + on_keydown: function() { + if (editingTd != null) return true; - if (next.length==0) { stepsForward(1); - } - else { - next.children('.editable')[pos].focus(); - } - }); + }, + is_solitary: true + } + ); + + wnd_listener.register_combo( + { + keys : 'down', + on_keydown: + function() { + if (editingTd != null) return true; + + let next = $(':focus').closest('tr').next('tr') + + let pos = $(':focus').closest('tr').children('.editable').index($(':focus')) + + if (next.length==0) { + stepsForward(1); + } + else { + next.children('.editable')[pos].focus(); + } + }, + is_solitary: true, + } + ); + wnd_listener.sequence_combo('l a', function() {