Add PageUp and PageDown keybind support
This commit is contained in:
committed by
Teknium
parent
13acf7759e
commit
101dfd782d
@@ -85,8 +85,8 @@ export const KEYBIND_ACTIONS: readonly KeybindActionMeta[] = [
|
||||
{ id: 'session.newWindow', category: 'session', defaults: ['mod+shift+n'] },
|
||||
// ⌃Tab / ⌃⇧Tab — the universal tab-cycle chord. Literally Control, not Cmd
|
||||
// (macOS reserves Cmd+Tab for app switching); see `ctrl` in combo.ts.
|
||||
{ id: 'session.next', category: 'session', defaults: ['ctrl+tab'] },
|
||||
{ id: 'session.prev', category: 'session', defaults: ['ctrl+shift+tab'] },
|
||||
{ id: 'session.next', category: 'session', defaults: ['ctrl+tab', 'ctrl+pagedown'] },
|
||||
{ id: 'session.prev', category: 'session', defaults: ['ctrl+shift+tab', 'ctrl+pageup'] },
|
||||
...SESSION_SLOT_ACTIONS,
|
||||
{ id: 'session.focusSearch', category: 'session', defaults: ['mod+shift+f'] },
|
||||
{ id: 'session.togglePin', category: 'session', defaults: [] },
|
||||
|
||||
@@ -82,6 +82,13 @@ describe('comboFromEvent — ctrl as a distinct modifier on macOS', () => {
|
||||
expect(comboFromEvent(keydown({ code: 'Tab', ctrlKey: true }))).toBe('mod+tab')
|
||||
expect(comboFromEvent(keydown({ code: 'Tab', ctrlKey: true, shiftKey: true }))).toBe('mod+shift+tab')
|
||||
})
|
||||
|
||||
it('recognizes PageUp and PageDown chords', async () => {
|
||||
const { comboFromEvent } = await loadCombo('MacIntel')
|
||||
|
||||
expect(comboFromEvent(keydown({ code: 'PageUp', ctrlKey: true }))).toBe('ctrl+pageup')
|
||||
expect(comboFromEvent(keydown({ code: 'PageDown', ctrlKey: true }))).toBe('ctrl+pagedown')
|
||||
})
|
||||
})
|
||||
|
||||
describe('canonicalizeCombo', () => {
|
||||
@@ -116,6 +123,13 @@ describe('formatCombo — honest Control labels', () => {
|
||||
expect(formatCombo('ctrl+tab')).toBe('Ctrl+⇥')
|
||||
expect(formatCombo('ctrl+shift+tab')).toBe('Ctrl+Shift+⇥')
|
||||
})
|
||||
|
||||
it('renders PageUp and PageDown with compact labels', async () => {
|
||||
const { formatCombo } = await loadCombo('Win32')
|
||||
|
||||
expect(formatCombo('ctrl+pageup')).toBe('Ctrl+PgUp')
|
||||
expect(formatCombo('ctrl+pagedown')).toBe('Ctrl+PgDn')
|
||||
})
|
||||
})
|
||||
|
||||
describe('actionAllowedInInput', () => {
|
||||
|
||||
@@ -33,6 +33,8 @@ const CODE_TO_KEY: Record<string, string> = {
|
||||
Escape: 'escape',
|
||||
Backspace: 'backspace',
|
||||
Tab: 'tab',
|
||||
PageUp: 'pageup',
|
||||
PageDown: 'pagedown',
|
||||
ArrowUp: 'up',
|
||||
ArrowDown: 'down',
|
||||
ArrowLeft: 'left',
|
||||
@@ -169,6 +171,8 @@ const TOKEN_LABELS: Record<string, string> = {
|
||||
escape: 'Esc',
|
||||
backspace: '⌫',
|
||||
tab: '⇥',
|
||||
pageup: 'PgUp',
|
||||
pagedown: 'PgDn',
|
||||
space: 'Space',
|
||||
up: '↑',
|
||||
down: '↓',
|
||||
|
||||
Reference in New Issue
Block a user