From ac96ef60792085fe246c19c0d3fb8f5159d993ea Mon Sep 17 00:00:00 2001 From: Laurent Ganier Date: Mon, 8 Sep 2003 21:33:11 +0000 Subject: [PATCH] [ 802373 ] undo/redo/onEditOperation when RO (2.1) --- Src/MergeEditView.cpp | 30 ++++++++++++++++++------------ Src/readme.txt | 2 ++ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/Src/MergeEditView.cpp b/Src/MergeEditView.cpp index 9e93c31aa..ad6d99cfc 100644 --- a/Src/MergeEditView.cpp +++ b/Src/MergeEditView.cpp @@ -499,13 +499,13 @@ void CMergeEditView::OnUpdateEditPaste(CCmdUI* pCmdUI) void CMergeEditView::OnEditUndo() { - if (IsReadOnly(m_bIsLeft)) - return; - CMergeDoc* pDoc = GetDocument(); CMergeEditView *tgt = *(pDoc->curUndo-1); if(tgt==this) { + if (IsReadOnly(m_bIsLeft)) + return; + GetParentFrame()->SetActiveView(this, TRUE); if(CCrystalEditViewEx::OnEditUndo()) { @@ -521,10 +521,11 @@ void CMergeEditView::OnEditUndo() void CMergeEditView::OnUpdateEditUndo(CCmdUI* pCmdUI) { - if (!IsReadOnly(m_bIsLeft)) + CMergeDoc* pDoc = GetDocument(); + if (pDoc->curUndo!=pDoc->undoTgt.begin()) { - CMergeDoc* pDoc = GetDocument(); - pCmdUI->Enable(pDoc->curUndo!=pDoc->undoTgt.begin()); + CMergeEditView *tgt = *(pDoc->curUndo-1); + pCmdUI->Enable( !IsReadOnly(tgt->m_bIsLeft)); } else pCmdUI->Enable(FALSE); @@ -809,7 +810,11 @@ void CMergeEditView::OnUpdateAllRight(CCmdUI* pCmdUI) void CMergeEditView::OnEditOperation(int nAction, LPCTSTR pszText) { if (IsReadOnly(m_bIsLeft)) + { + // We must not arrive here, and assert helps detect troubles + ASSERT(0); return; + } CMergeDoc* pDoc = GetDocument(); @@ -849,13 +854,13 @@ void CMergeEditView::OnEditOperation(int nAction, LPCTSTR pszText) void CMergeEditView::OnEditRedo() { - if (IsReadOnly(m_bIsLeft)) - return; - CMergeDoc* pDoc = GetDocument(); CMergeEditView *tgt = *(pDoc->curUndo); if(tgt==this) { + if (IsReadOnly(m_bIsLeft)) + return; + GetParentFrame()->SetActiveView(this, TRUE); if(CCrystalEditViewEx::OnEditRedo()) { @@ -871,10 +876,11 @@ void CMergeEditView::OnEditRedo() void CMergeEditView::OnUpdateEditRedo(CCmdUI* pCmdUI) { - if (!IsReadOnly(m_bIsLeft)) + CMergeDoc* pDoc = GetDocument(); + if (pDoc->curUndo!=pDoc->undoTgt.end()) { - CMergeDoc* pDoc = GetDocument(); - pCmdUI->Enable(pDoc->curUndo!=pDoc->undoTgt.end()); + CMergeEditView *tgt = *(pDoc->curUndo); + pCmdUI->Enable( !IsReadOnly(tgt->m_bIsLeft)); } else pCmdUI->Enable(FALSE); diff --git a/Src/readme.txt b/Src/readme.txt index 0bfdc1203..65d39678a 100644 --- a/Src/readme.txt +++ b/Src/readme.txt @@ -1,4 +1,6 @@ 2003-09-08 Laoran + PATCH: [ 802373 ] undo/redo/onEditOperation when RO (2.1) + WinMerge: MergeEditView.cpp PATCH: [ 802359 ] display in diff pane when no diff (2.1) WinMerge: MergeDiffDetailView.cpp -- 2.11.0