From a7adbb54fc8cc0375c534fc6ef29d826a25a0086 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Mon, 15 Jun 2015 18:59:29 -0400 Subject: [PATCH] Bug1033: Swap-channels command will not lose the track focus --- src/TrackPanel.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index c1c221466..81a5d7a92 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -8856,6 +8856,10 @@ void TrackPanel::OnChannelChange(wxCommandEvent & event) void TrackPanel::OnSwapChannels(wxCommandEvent & WXUNUSED(event)) { Track *partner = mPopupMenuTarget->GetLink(); + Track *const focused = GetFocusedTrack(); + const bool hasFocus = + (focused == mPopupMenuTarget || focused == partner); + SplitStereo(true); mPopupMenuTarget->SetChannel(Track::RightChannel); partner->SetChannel(Track::LeftChannel); @@ -8868,6 +8872,9 @@ void TrackPanel::OnSwapChannels(wxCommandEvent & WXUNUSED(event)) pMixerBoard->UpdateTrackClusters(); } + if (hasFocus) + SetFocusedTrack(partner); + MakeParentPushState(wxString::Format(_("Swapped Channels in '%s'"), mPopupMenuTarget->GetName().c_str()), _("Swap Channels"));