From de4586082ceb8daa5475f043babc6bb31b602a02 Mon Sep 17 00:00:00 2001 From: Niraj Modi Date: Tue, 8 Dec 2020 21:43:29 +0530 Subject: Bug 552352 - Using SWAP in Compare editor loses changes and dirty status Change-Id: Iab835c01242ede0a481d17cafd5f603746695317 Signed-off-by: Niraj Modi --- .../compare/contentmergeviewer/ContentMergeViewer.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java index cab519f96..daa89d98d 100644 --- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java +++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2018 IBM Corporation and others. + * Copyright (c) 2000, 2020 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -914,6 +914,17 @@ public abstract class ContentMergeViewer extends ContentViewer fSwitchLeftAndRight = new Action() { @Override public void run() { + /* + * Bug 552352: When comparing .txt files with corresponding .txt file editors + * closed and user modifies the content of one of the .txt file in the compare + * view and the compare state becomes 'dirty' and if followed by a 'Swap' + * action, modifications get lost. This data loss is considered a severe + * problem, so to avoid this modified data loss in this scenario, show a + * confirmation dialog to 'save' the file before swapping and let user decide + * and take a call on this. Note: Issue not seen with .java & .properties files. + */ + doSave(null, getInput()); + IPreferenceStore preferences = getCompareConfiguration().getPreferenceStore(); preferences.setValue(ComparePreferencePage.SWAPPED, !getCompareConfiguration().isMirrored()); if (preferences instanceof IPersistentPreferenceStore) { -- cgit v1.2.3