fix: few misc issues when switching between MIDI region and audio regions
This commit is contained in:
@@ -42,6 +42,7 @@ const MainContent: React.FC<MainContentProps> = ({
|
|||||||
setShowPianoRoll,
|
setShowPianoRoll,
|
||||||
setActiveRegionId,
|
setActiveRegionId,
|
||||||
pianoRollMode,
|
pianoRollMode,
|
||||||
|
openMidiPianoRoll,
|
||||||
openSpectrogramViewer,
|
openSpectrogramViewer,
|
||||||
addTrack,
|
addTrack,
|
||||||
addAudioTrack,
|
addAudioTrack,
|
||||||
@@ -511,6 +512,16 @@ const MainContent: React.FC<MainContentProps> = ({
|
|||||||
const track = tracks.find(t => t.getId().toString() === region.trackId);
|
const track = tracks.find(t => t.getId().toString() === region.trackId);
|
||||||
if (!track) return;
|
if (!track) return;
|
||||||
setSelectedTrack(track.getId().toString());
|
setSelectedTrack(track.getId().toString());
|
||||||
|
|
||||||
|
// If the piano roll window is already open, follow the selected region's type
|
||||||
|
if (showPianoRoll) {
|
||||||
|
const coreRegion = track.getRegions().find(r => r.getId() === regionId);
|
||||||
|
if (coreRegion?.getCurrentType() === 'KGAudioRegion') {
|
||||||
|
openSpectrogramViewer(regionId);
|
||||||
|
} else if (coreRegion?.getCurrentType() === 'KGMidiRegion') {
|
||||||
|
openMidiPianoRoll(regionId);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Handle explicit pencil action: select region and open piano roll
|
// Handle explicit pencil action: select region and open piano roll
|
||||||
@@ -531,9 +542,8 @@ const MainContent: React.FC<MainContentProps> = ({
|
|||||||
// Reuse selection logic
|
// Reuse selection logic
|
||||||
handleRegionClick(regionId);
|
handleRegionClick(regionId);
|
||||||
|
|
||||||
// Activate and show piano roll
|
// Activate and show piano roll in midi-edit mode
|
||||||
setActiveRegionId(regionId);
|
openMidiPianoRoll(regionId);
|
||||||
setShowPianoRoll(true);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Handle spectrogram viewer open
|
// Handle spectrogram viewer open
|
||||||
|
|||||||
Reference in New Issue
Block a user