From 6f7836c11eaa91fbe6be92b35ebe0d1886a149af Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Sun, 8 Jan 2012 01:35:25 +0000 Subject: [PATCH] Paint keyframe markers on top of line markers so that they don't vanish when lines are scenetimed Originally committed to SVN as r6239. --- aegisub/src/audio_controller.cpp | 3 +-- aegisub/src/audio_controller.h | 3 --- aegisub/src/audio_timing_dialogue.cpp | 5 ++++- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/aegisub/src/audio_controller.cpp b/aegisub/src/audio_controller.cpp index 8c567100d..c208a8921 100644 --- a/aegisub/src/audio_controller.cpp +++ b/aegisub/src/audio_controller.cpp @@ -498,9 +498,8 @@ SampleRange AudioController::GetPrimaryPlaybackRange() const void AudioController::GetMarkers(const SampleRange &range, AudioMarkerVector &markers) const { /// @todo Find all sources of markers - if (keyframes_marker_provider.get()) keyframes_marker_provider->GetMarkers(range, markers); - if (video_position_marker_provider.get()) video_position_marker_provider->GetMarkers(range, markers); if (timing_controller) timing_controller->GetMarkers(range, markers); + if (video_position_marker_provider.get()) video_position_marker_provider->GetMarkers(range, markers); } void AudioController::GetLabels(const SampleRange &range, std::vector &labels) const diff --git a/aegisub/src/audio_controller.h b/aegisub/src/audio_controller.h index ba3af635e..d7fb78092 100644 --- a/aegisub/src/audio_controller.h +++ b/aegisub/src/audio_controller.h @@ -213,9 +213,6 @@ class AudioController : public wxEvtHandler, public AudioMarkerProvider, public /// The current timing mode, if any; owned by the audio controller agi::scoped_ptr timing_controller; - /// Provide keyframe data for audio displays - agi::scoped_ptr keyframes_marker_provider; - /// Provider current video position data for audio display agi::scoped_ptr video_position_marker_provider; diff --git a/aegisub/src/audio_timing_dialogue.cpp b/aegisub/src/audio_timing_dialogue.cpp index d6d638c00..ef8613267 100644 --- a/aegisub/src/audio_timing_dialogue.cpp +++ b/aegisub/src/audio_timing_dialogue.cpp @@ -338,7 +338,8 @@ const AudioMarkerDialogueTiming *AudioTimingControllerDialogue::GetRightMarker() void AudioTimingControllerDialogue::GetMarkers(const SampleRange &range, AudioMarkerVector &out_markers) const { - keyframes_provider.GetMarkers(range, out_markers); + // The order matters here; later markers are painted on top of earlier + // markers, so the markers that we want to end up on top need to appear last // Copy inactive line markers in the range std::vector::const_iterator @@ -352,6 +353,8 @@ void AudioTimingControllerDialogue::GetMarkers(const SampleRange &range, AudioMa out_markers.push_back(&active_markers[0]); if (range.contains(active_markers[1])) out_markers.push_back(&active_markers[1]); + + keyframes_provider.GetMarkers(range, out_markers); } void AudioTimingControllerDialogue::OnActiveLineChanged(AssDialogue *new_line)