From 064b2e16012e42ba7591669931b4b9e86ce0dc02 Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Sun, 16 Apr 2017 18:57:13 +0900 Subject: [PATCH] Fix issue#64 where files and folders that exist only on one side in the differing folders are not displayed when unchecking the 'Show Differences Items' menu item in the tree mode --- Src/DirActions.cpp | 9 +++++++++ Src/DirView.cpp | 1 + 2 files changed, 10 insertions(+) diff --git a/Src/DirActions.cpp b/Src/DirActions.cpp index 48ea17023..3dc885c2f 100644 --- a/Src/DirActions.cpp +++ b/Src/DirActions.cpp @@ -610,7 +610,16 @@ bool IsShowable(const CDiffContext& ctxt, const DIFFITEM & di, const DirViewFilt if (di.diffcode.isResultSame() && !filter.show_identical) return false; if (di.diffcode.isResultDiff() && !filter.show_different) + { + uintptr_t diffpos = ctxt.GetFirstChildDiffPosition(reinterpret_cast(&di)); + while (diffpos) + { + const DIFFITEM &dic = ctxt.GetNextSiblingDiffPosition(diffpos); + if (IsShowable(ctxt, dic, filter)) + return true; + } return false; + } } } } diff --git a/Src/DirView.cpp b/Src/DirView.cpp index 9eb84bbc4..41a2e840f 100644 --- a/Src/DirView.cpp +++ b/Src/DirView.cpp @@ -3111,6 +3111,7 @@ void CDirView::OnUpdateViewShowHiddenItems(CCmdUI* pCmdUI) void CDirView::OnViewTreeMode() { m_bTreeMode = !m_bTreeMode; + m_dirfilter.tree_mode = m_bTreeMode; GetOptionsMgr()->SaveOption(OPT_TREE_MODE, m_bTreeMode); // reverse Redisplay(); } -- 2.11.0