View | Details | Raw Unified | Return to bug 269202
Collapse All | Expand All

(-)ui/org/eclipse/jdt/internal/ui/compare/JavaStructureDiffViewer.java (-1 / +8 lines)
Lines 26-31 Link Here
26
import org.eclipse.jface.action.IAction;
26
import org.eclipse.jface.action.IAction;
27
import org.eclipse.jface.action.ToolBarManager;
27
import org.eclipse.jface.action.ToolBarManager;
28
import org.eclipse.jface.util.PropertyChangeEvent;
28
import org.eclipse.jface.util.PropertyChangeEvent;
29
import org.eclipse.jface.viewers.ISelection;
29
30
30
import org.eclipse.compare.CompareConfiguration;
31
import org.eclipse.compare.CompareConfiguration;
31
import org.eclipse.compare.CompareViewerPane;
32
import org.eclipse.compare.CompareViewerPane;
Lines 198-204 Link Here
198
	protected void propertyChange(PropertyChangeEvent event) {
199
	protected void propertyChange(PropertyChangeEvent event) {
199
		if (event.getProperty().equals(SMART))
200
		if (event.getProperty().equals(SMART))
200
			diff();
201
			diff();
201
		else
202
		else if (event.getProperty().equals("RESET_DIFF_TREE_VIEWER_SELECTION")) {
203
			setSelection(new ISelection() {
204
				public boolean isEmpty() {
205
					return true;
206
				}
207
			});
208
		} else
202
			super.propertyChange(event);
209
			super.propertyChange(event);
203
	}
210
	}
204
211
(-)compare/org/eclipse/compare/internal/CompareEditor.java (-2 / +2 lines)
Lines 421-427 Link Here
421
			CompareEditorInput ci = (CompareEditorInput) input;
421
			CompareEditorInput ci = (CompareEditorInput) input;
422
			if (ci.getCompareResult() == null) {
422
			if (ci.getCompareResult() == null) {
423
				if (getState() == INITIALIZING) {
423
				if (getState() == INITIALIZING) {
424
					getSite().setSelectionProvider(new CompareEditorSelectionProvider());
424
					getSite().setSelectionProvider(new CompareEditorSelectionProvider(getCompareConfiguration()));
425
					setPageLater();
425
					setPageLater();
426
				} else if (getState() == STILL_INITIALIZING) {
426
				} else if (getState() == STILL_INITIALIZING) {
427
					if (initializingPage == null) {
427
					if (initializingPage == null) {
Lines 445-451 Link Here
445
				// Set the state in case this method gets called again
445
				// Set the state in case this method gets called again
446
				setState(CREATING_CONTROL);
446
				setState(CREATING_CONTROL);
447
				if (getSite().getSelectionProvider() == null)
447
				if (getSite().getSelectionProvider() == null)
448
					getSite().setSelectionProvider(new CompareEditorSelectionProvider());
448
					getSite().setSelectionProvider(new CompareEditorSelectionProvider(getCompareConfiguration()));
449
				fControl= ci.createContents(fPageBook);
449
				fControl= ci.createContents(fPageBook);
450
				fPageBook.showPage(fControl);
450
				fPageBook.showPage(fControl);
451
				PlatformUI.getWorkbench().getHelpSystem().setHelp(fControl, ICompareContextIds.COMPARE_EDITOR);
451
				PlatformUI.getWorkbench().getHelpSystem().setHelp(fControl, ICompareContextIds.COMPARE_EDITOR);
(-)compare/org/eclipse/compare/internal/CompareEditorSelectionProvider.java (-2 / +16 lines)
Lines 10-17 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.compare.internal;
11
package org.eclipse.compare.internal;
12
12
13
import org.eclipse.compare.CompareConfiguration;
13
import org.eclipse.core.runtime.Assert;
14
import org.eclipse.core.runtime.Assert;
14
import org.eclipse.core.runtime.ListenerList;
15
import org.eclipse.core.runtime.ListenerList;
16
import org.eclipse.jface.text.IRegion;
17
import org.eclipse.jface.text.ITextSelection;
15
import org.eclipse.jface.text.TextSelection;
18
import org.eclipse.jface.text.TextSelection;
16
import org.eclipse.jface.text.TextViewer;
19
import org.eclipse.jface.text.TextViewer;
17
import org.eclipse.jface.viewers.IPostSelectionProvider;
20
import org.eclipse.jface.viewers.IPostSelectionProvider;
Lines 66-77 Link Here
66
	}
69
	}
67
70
68
	private TextViewer[] fViewers;
71
	private TextViewer[] fViewers;
69
70
	private TextViewer fViewerInFocus;
72
	private TextViewer fViewerInFocus;
71
	private ListenerList fSelectionChangedListeners;
73
	private ListenerList fSelectionChangedListeners;
72
	private ListenerList fPostSelectionChangedListeners;
74
	private ListenerList fPostSelectionChangedListeners;
75
	private CompareConfiguration fCompareConfiguration;
73
76
74
	public CompareEditorSelectionProvider() {
77
	public CompareEditorSelectionProvider(CompareConfiguration cc) {
78
		fCompareConfiguration = cc;
75
		fSelectionChangedListeners = new ListenerList();
79
		fSelectionChangedListeners = new ListenerList();
76
		fPostSelectionChangedListeners = new ListenerList();
80
		fPostSelectionChangedListeners = new ListenerList();
77
		// nothing more to do here, Compare Editor is initializing
81
		// nothing more to do here, Compare Editor is initializing
Lines 199-204 Link Here
199
203
200
	public void setSelection(ISelection selection, boolean reveal) {
204
	public void setSelection(ISelection selection, boolean reveal) {
201
		if (fViewerInFocus != null) {
205
		if (fViewerInFocus != null) {
206
			if (reveal) {
207
				IRegion visible = fViewerInFocus.getVisibleRegion();
208
				if (selection instanceof ITextSelection) {
209
					ITextSelection s= (ITextSelection) selection;
210
					if (s.getOffset() < visible.getOffset()
211
							|| s.getOffset() + s.getLength() > visible.getOffset() + visible.getLength()) {
212
						fCompareConfiguration.setProperty("RESET_DIFF_TREE_VIEWER_SELECTION", null);
213
					}
214
				}
215
			}
202
			fViewerInFocus.setSelection(selection, reveal);
216
			fViewerInFocus.setSelection(selection, reveal);
203
		}
217
		}
204
	}
218
	}

Return to bug 269202