feat(overlay): run session help commands with Enter or double-click (#275)

This commit is contained in:
sudacode authored and GitHub committed 2026-09-29 18:48:56 -07:00
1 parent 4e43c5c6e1
commit 0bbd8617f4
16 files changed
+701 -49

No files matched your search

+5 -26
View File
@@ -1,6 +1,7 @@
import type { CompiledSessionBinding, PrimarySubMode, ShortcutsConfig } from '../../types';
import type { RendererContext } from '../context';
import { createMpvInputForwarding } from './mpv-input-forwarding';
import { dispatchConfiguredMpvCommand } from '../utils/mpv-command-dispatch';
import {
YOMITAN_POPUP_HIDDEN_EVENT,
YOMITAN_POPUP_SHOWN_EVENT,
@@ -257,7 +258,10 @@ export function createKeyboardHandlers(
}
if (binding.actionType === 'mpv-command') {
dispatchConfiguredMpvCommand(binding.command);
dispatchConfiguredMpvCommand(binding.command, {
getPlaybackPaused: options.getPlaybackPaused,
sendMpvCommand: (command) => window.electronAPI.sendMpvCommand(command),
});
return;
}
@@ -566,31 +570,6 @@ export function createKeyboardHandlers(
});
}
function isSubtitleSeekCommand(
command: (string | number)[] | undefined,
): command is [string, number] {
return Array.isArray(command) && command[0] === 'sub-seek' && typeof command[1] === 'number';
}
function dispatchConfiguredMpvCommand(command: (string | number)[]): void {
if (!isSubtitleSeekCommand(command)) {
window.electronAPI.sendMpvCommand(command);
return;
}
void options
.getPlaybackPaused()
.then((paused) => {
window.electronAPI.sendMpvCommand(command);
if (paused !== false) {
window.electronAPI.sendMpvCommand(['set_property', 'pause', 'yes']);
}
})
.catch(() => {
window.electronAPI.sendMpvCommand(command);
});
}
type ScanModifierState = {
shiftKey?: boolean;
ctrlKey?: boolean;