OSDN Git Service

Fix sf.net ticket #2213: Left and Right files swap after losing focus v2.16.0.0
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 3 Feb 2019 02:57:04 +0000 (11:57 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 3 Feb 2019 02:57:04 +0000 (11:57 +0900)
Src/DirDoc.cpp
Src/DirDoc.h

index 787ff29..27a9bd6 100644 (file)
@@ -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<int>(paths.size() - 1)]);
+               std::swap(pathsSwapped[0], pathsSwapped[static_cast<int>(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);
                        }
                }
index 03c44ce..2291c6a 100644 (file)
@@ -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();