From 579e019d58ddc19885afb820363521066e3efa55 Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Wed, 13 May 2020 21:31:27 +0900 Subject: [PATCH] Fix osdn.net ticket 40407: Fix a problem where markers that are out of the range of the current difference appear in the difference pane. --- Externals/crystaledit/editlib/ccrystaltextview.h | 2 +- Src/MergeEditView.cpp | 10 ++++++++++ Src/MergeEditView.h | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Externals/crystaledit/editlib/ccrystaltextview.h b/Externals/crystaledit/editlib/ccrystaltextview.h index 78f31b305..e3a137a50 100644 --- a/Externals/crystaledit/editlib/ccrystaltextview.h +++ b/Externals/crystaledit/editlib/ccrystaltextview.h @@ -600,7 +600,7 @@ protected: //END SW std::vector MergeTextBlocks(const std::vector& blocks1, const std::vector& blocks2) const; - std::vector GetMarkerTextBlocks(int nLineIndex) const; + virtual std::vector GetMarkerTextBlocks(int nLineIndex) const; virtual std::vector GetAdditionalTextBlocks (int nLineIndex); public: diff --git a/Src/MergeEditView.cpp b/Src/MergeEditView.cpp index 3158091af..1203b86b9 100644 --- a/Src/MergeEditView.cpp +++ b/Src/MergeEditView.cpp @@ -539,6 +539,16 @@ void CMergeEditView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDoc->UpdateHeaderActivity(m_nThisPane, !!bActivate); } +std::vector CMergeEditView::GetMarkerTextBlocks(int nLineIndex) const +{ + if (m_bDetailView) + { + if (nLineIndex < m_lineBegin || nLineIndex > m_lineEnd) + return std::vector(); + } + return CCrystalTextView::GetMarkerTextBlocks(nLineIndex); +} + std::vector CMergeEditView::GetAdditionalTextBlocks (int nLineIndex) { static const std::vector emptyBlocks; diff --git a/Src/MergeEditView.h b/Src/MergeEditView.h index b6ca83eac..d6293be4b 100644 --- a/Src/MergeEditView.h +++ b/Src/MergeEditView.h @@ -138,6 +138,7 @@ public: void SelectArea(const CPoint & ptStart, const CPoint & ptEnd) { SetSelection(ptStart, ptEnd); } // make public using CGhostTextView::GetSelection; virtual void UpdateSiblingScrollPos (bool bHorz) override; + virtual std::vector GetMarkerTextBlocks(int nLineIndex) const; virtual std::vector GetAdditionalTextBlocks (int nLineIndex) override; virtual COLORREF GetColor(int nColorIndex) override; virtual void GetLineColors (int nLineIndex, COLORREF & crBkgnd, -- 2.11.0