FIX: sửa lỗi playhead đồng bộ giữa các tab, nhấn space có thể bind với phím play

This commit is contained in:
2026-08-07 10:27:21 +07:00
parent bca661bffd
commit 4981785913
4 changed files with 41 additions and 3 deletions
+17
View File
@@ -15966,6 +15966,14 @@ const App = () => {
if (e.key === ' ' || e.code === 'Space') {
if (window.mediaExplorerActive) return;
e.preventDefault();
// Ngăn space kích hot BUTTON đang focus (tab header/control):
// browser fire click tng hp KEYUP space click tab header
// CHUYN TAB (nhìn như space không play/stop). Blur button trưc khi
// play/stop keyup sau đó target body không click.
try {
const _ae = document.activeElement;
if (_ae && _ae.tagName === 'BUTTON') _ae.blur();
} catch (err) { }
if (recordingStateRef.current === 'RECORDING' || recordingStateRef.current === 'COUNT_IN') {
handleRecordClickRef.current();
return;
@@ -19525,6 +19533,15 @@ const App = () => {
// Sub-tab playback transport
const st = subTabs.find(s => s.id === activeTab);
if (!st || (!st.buffer && st.type !== 'PIANO_ROLL')) return;
// MAIN/SECTION đang play (ngm MIDI section/main còn kêu sau khi m
// tab): Space phi STOP trưc không đưc play sub-tab (user: trong
// PIANO ROLL không phát hin MIDI đang play space 2 ln mi stop).
if (isPlaying) {
stopAllPlayback();
setSubTabs(prev => prev.map(s => s.isPlaying ? { ...s, isPlaying: false } : s));
setIsPlaying(false);
return;
}
if (st.isPlaying) {
stopAllPlayback();
setSubTabs(prev => prev.map(s => s.id === activeTab ? {