From d71a52feffa1401a95cecaaa43356e9729ee1dee Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Sun, 3 Feb 2019 11:57:04 +0900 Subject: [PATCH] Fix sf.net ticket #2213: Left and Right files swap after losing focus v2.16.0.0 --- Src/DirDoc.cpp | 8 ++++---- Src/DirDoc.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Src/DirDoc.cpp b/Src/DirDoc.cpp index 787ff296f..27a9bd65c 100644 --- a/Src/DirDoc.cpp +++ b/Src/DirDoc.cpp @@ -432,7 +432,7 @@ bool CDirDoc::CloseMergeDocs() * @param [in] nTrivialDiffs Amount of ignored differences * @param [in] bIdentical `true` if files became identical, `false` otherwise. */ -void CDirDoc::UpdateChangedItem(PathContext &paths, +void CDirDoc::UpdateChangedItem(const PathContext &paths, UINT nDiffs, UINT nTrivialDiffs, bool bIdentical) { DIFFITEM *pos = FindItemFromPaths(*m_pCtxt, paths); @@ -440,17 +440,17 @@ void CDirDoc::UpdateChangedItem(PathContext &paths, if (!pos) { PathContext pathsSwapped(paths); - std::swap(paths[0], paths[static_cast(paths.size() - 1)]); + std::swap(pathsSwapped[0], pathsSwapped[static_cast(pathsSwapped.size() - 1)]); pos = FindItemFromPaths(*m_pCtxt, pathsSwapped); if (!pos && paths.size() > 2) { pathsSwapped = paths; - std::swap(paths[0], paths[1]); + std::swap(pathsSwapped[0], pathsSwapped[1]); pos = FindItemFromPaths(*m_pCtxt, pathsSwapped); if (!pos && paths.size() > 2) { pathsSwapped = paths; - std::swap(paths[1], paths[2]); + std::swap(pathsSwapped[1], pathsSwapped[2]); pos = FindItemFromPaths(*m_pCtxt, pathsSwapped); } } diff --git a/Src/DirDoc.h b/Src/DirDoc.h index 03c44cee3..2291c6a97 100644 --- a/Src/DirDoc.h +++ b/Src/DirDoc.h @@ -90,7 +90,7 @@ public: bool HasDirView() const { return m_pDirView != nullptr; } void RefreshOptions(); void CompareReady(); - void UpdateChangedItem(PathContext & paths, + void UpdateChangedItem(const PathContext & paths, UINT nDiffs, UINT nTrivialDiffs, bool bIdentical); void UpdateResources(); void InitStatusStrings(); -- 2.11.0