From 2a13cb9e6804dc82deccf585a5e2fe1e47ecfb04 Mon Sep 17 00:00:00 2001 From: brunoherbelin Date: Wed, 19 Nov 2025 21:28:11 +0100 Subject: [PATCH] BugFix Avoid reload media player on undo/redo --- src/SessionCreator.cpp | 5 ++++- src/SourceControlWindow.cpp | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/SessionCreator.cpp b/src/SessionCreator.cpp index 83f8444..2914f73 100644 --- a/src/SessionCreator.cpp +++ b/src/SessionCreator.cpp @@ -1145,6 +1145,7 @@ void SessionLoader::visit (Source& s) void SessionLoader::visit (MediaSource& s) { + bool freshload = false; // set uri XMLElement* pathNode = xmlCurrent_->FirstChildElement("uri"); // TODO change to "path" but keep backward compatibility if (pathNode) { @@ -1162,6 +1163,7 @@ void SessionLoader::visit (MediaSource& s) } } s.setPath(path); + freshload = true; } } // ensures the source is initialized even if no valid path is given @@ -1178,7 +1180,8 @@ void SessionLoader::visit (MediaSource& s) s.mediaplayer()->setRate(1.0); // add a callback to activate source play speed and rewind s.call( new PlaySpeed( r ) ); - s.call( new RePlay( ) ); + if (freshload) + s.call( new RePlay( ) ); } void SessionLoader::visit (SessionFileSource& s) diff --git a/src/SourceControlWindow.cpp b/src/SourceControlWindow.cpp index 67c50e1..d8f0734 100644 --- a/src/SourceControlWindow.cpp +++ b/src/SourceControlWindow.cpp @@ -471,7 +471,8 @@ void SourceControlWindow::Render() mediaplayer_active_->timeline()->clearFading(); mediaplayer_active_->timeline()->clearGaps(); mediaplayer_active_->timeline()->clearFlags(); - mediaplayer_active_->setVideoEffect(""); + if (!mediaplayer_active_->videoEffect().empty() && mediaplayer_active_->videoEffectAvailable()) + mediaplayer_active_->setVideoEffect(""); std::ostringstream oss; oss << SystemToolkit::base_filename( mediaplayer_active_->filename() ); oss << ": Reset timeline";