Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Weinand2001-07-03 10:15:06 +0000
committerAndre Weinand2001-07-03 10:15:06 +0000
commit8ec36a80fc8429c874fca669cdc1917ed8f029c8 (patch)
treeda8411ccbfffc62af01e42b55781123821d4e8db
parente83ea398c04d8b2e9a0363717cd1c1eeadc745fb (diff)
downloadeclipse.platform.team-8ec36a80fc8429c874fca669cdc1917ed8f029c8.tar.gz
eclipse.platform.team-8ec36a80fc8429c874fca669cdc1917ed8f029c8.tar.xz
eclipse.platform.team-8ec36a80fc8429c874fca669cdc1917ed8f029c8.zip
PRs 1GFDFH2, 1GF2JX7, 1GEV5NV, 1GFINFX
-rw-r--r--bundles/org.eclipse.compare/buildnotes_compare.html30
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java2
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java21
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java2
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java42
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java12
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java15
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java7
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html30
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java2
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java21
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java2
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java42
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java12
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java15
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java7
16 files changed, 164 insertions, 98 deletions
diff --git a/bundles/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/buildnotes_compare.html
index 7f99f4663..cb944ea0d 100644
--- a/bundles/org.eclipse.compare/buildnotes_compare.html
+++ b/bundles/org.eclipse.compare/buildnotes_compare.html
@@ -11,6 +11,36 @@
<h1>
Eclipse Platform Build Notes<br>
Compare (including example)</h1>
+Eclipse SDK Build - July ???, 2001
+
+<h2>
+What's new in this drop</h2>
+
+<h3>
+API changes</h3>
+
+<h3>
+API Additions</h3>
+
+<h3>
+Other highlights</h3>
+
+<h2>
+Known deficiencies</h2>
+
+<h2>
+Problem reports fixed</h2>
+1GFDFH2: ITPJUI:ALL - Structure compare Ctrl-P causes error when previous in an unexpanded folder<br>
+1GF2JX7: ITPUI:ALL - Compare wrong for empty folders<br>
+1GEV5NV: ITPVCM:ALL - Using up/down arrow keys in sync view structure tree changs focus<br>
+1GFINFX: ITPUI:ALL - Remove Bad words<br>
+
+<h2>
+Problem reports closed</h2>
+1GF0E5W: ITPJUI:WINNT - Compare: probably shouldn't be passing streams around<br>
+
+<h1>
+<hr WIDTH="100%"></h1>
Eclipse SDK Build 121 - June 8th, 2001
<h2>
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 34ea9d1b7..e1e560bcf 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
@@ -118,7 +118,7 @@ public abstract class ContentMergeViewer extends ContentViewer implements IPrope
handleResizeAncestor(0, 0, 0, 0);
}
- fLeftLabel.getSize(); // WORKAROUND FOR PR
+ fLeftLabel.getSize(); // without this resizing would not always work
if (centerWidth > 3) {
fLeftLabel.setBounds(0, y, width1+1, headerHeight);
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index e386b199f..c9801b0bc 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -584,7 +584,20 @@ public class TextMergeViewer extends ContentMergeViewer {
);
}
+ /**
+ * Called whenever setFocus() is called on the ContentViewer's top level SWT Composite.
+ * This implementation sets the focus to the first enabled text widget.
+ */
/* package */ boolean internalSetFocus() {
+ if (fFocusPart == null) {
+ if (fLeft != null && fLeft.getEnabled()) {
+ fFocusPart= fLeft;
+ } else if (fRight != null && fRight.getEnabled()) {
+ fFocusPart= fRight;
+ } else if (fAncestor != null && fAncestor.getEnabled()) {
+ fFocusPart= fAncestor;
+ }
+ }
if (fFocusPart != null) {
StyledText st= fFocusPart.getTextWidget();
if (st != null)
@@ -887,12 +900,6 @@ public class TextMergeViewer extends ContentMergeViewer {
}
tp.setEnabled(enabled);
- if (fFocusPart == null) {
- if (enabled) {
- fFocusPart= tp;
- fFocusPart.getTextWidget().setFocus();
- }
- }
return enabled;
}
@@ -2068,7 +2075,7 @@ public class TextMergeViewer extends ContentMergeViewer {
// before we set fCurrentDiff we change the selection
// so that the paint code uses the old background colors
- // otherwise we get screen cheese
+ // otherwise selection isn't drawn correctly
if (isThreeWay())
fAncestor.setSelection(d.fAncestorPos);
fLeft.setSelection(d.fLeftPos);
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
index db531e7fd..a7a8e3131 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
@@ -15,7 +15,7 @@ import org.eclipse.compare.CompareEditorInput;
/**
* Supports cross-pane navigation through differences.
- * XXX: Design is bogus because the feature had to be added without touching API.
+ * XXX: Design is as it is because the feature had to be added without touching API.
*/
public class CompareNavigator {
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java
index c4b29fe48..1df9e396a 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java
@@ -76,6 +76,8 @@ public abstract class CompareViewerSwitchingPane extends Pane
fControlVisibility= visibility;
setViewer(new NullViewer(this));
+
+ CompareNavigator.hookNavigation(this);
addDisposeListener(
new DisposeListener() {
@@ -98,7 +100,7 @@ public abstract class CompareViewerSwitchingPane extends Pane
public Viewer getViewer() {
return fViewer;
}
-
+
/**
* Sets the current viewer.
*/
@@ -122,9 +124,9 @@ public abstract class CompareViewerSwitchingPane extends Pane
fViewer.setInput(null);
- if (content != null && !content.isDisposed()) {
+ if (content != null && !content.isDisposed())
content.dispose();
- }
+
} else
oldEmpty= false;
setContent(null);
@@ -132,11 +134,12 @@ public abstract class CompareViewerSwitchingPane extends Pane
fViewer= newViewer;
if (fViewer != null) {
- // workaround: setContent changes the visibility of the CustomPane
- boolean old= getVisible();
+ // we have to remember and restore the old visibility of the CustomPane
+ // since setContent changes the visibility
+ boolean old= getVisible();
+ Control newControl= fViewer.getControl();
setContent(fViewer.getControl());
- setVisible(old);
- // end of workaround
+ setVisible(old); // restore old visibility
boolean newEmpty= isEmpty();
@@ -145,15 +148,12 @@ public abstract class CompareViewerSwitchingPane extends Pane
if (fViewer instanceof StructuredViewer)
((StructuredViewer)fViewer).addDoubleClickListener(this);
- if (oldEmpty != newEmpty) {// relayout my container
+ if (oldEmpty != newEmpty) { // relayout my container
Composite parent= getParent();
if (parent instanceof Splitter)
((Splitter)parent).setVisible(this, fControlVisibility ? !newEmpty : true);
- //else
- // parent.layout(true);
}
- //else if (!newEmpty)// otherwise just relayout myself
layout(true);
}
}
@@ -204,11 +204,27 @@ public abstract class CompareViewerSwitchingPane extends Pane
for (int i= 0; i < listeners.length; i++)
((ISelectionChangedListener) listeners[i]).selectionChanged(ev);
}
+
+ private boolean hasFocus2() {
+ // do we have focus?
+ Display display= getDisplay();
+ if (display != null)
+ for (Control focus= display.getFocusControl(); focus != null; focus= focus.getParent())
+ if (focus == this)
+ return true;
+ return false;
+ }
+ /**
+ * If the old viewer had focus, new setInput tries to set
+ * focus on new viewer too.
+ */
public void setInput(Object input) {
if (fInput == input)
return;
+
+ boolean hadFocus= hasFocus2();
try {
if (fViewer != null)
@@ -247,7 +263,9 @@ public abstract class CompareViewerSwitchingPane extends Pane
Object data= c.getData(CompareUI.COMPARE_VIEWER_TITLE);
if (data instanceof String)
title= (String) data;
- }
+ if (hadFocus)
+ c.setFocus();
+ }
}
setText(title != null ? title : "");
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
index 169aa73bf..453bf6b25 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
@@ -62,15 +62,9 @@ public class ImageMergeViewer extends ContentMergeViewer {
}
public void createControls(Composite composite) {
- fAncestor= new ImageCanvas(composite, SWT.NONE);
- CompareNavigator.hookNavigation(fAncestor);
-
- fLeft= new ImageCanvas(composite, SWT.NONE);
- CompareNavigator.hookNavigation(fLeft);
- fLeft.setFocus();
-
- fRight= new ImageCanvas(composite, SWT.NONE);
- CompareNavigator.hookNavigation(fRight);
+ fAncestor= new ImageCanvas(composite, SWT.NO_FOCUS);
+ fLeft= new ImageCanvas(composite, SWT.NO_FOCUS);
+ fRight= new ImageCanvas(composite, SWT.NO_FOCUS);
}
private static void setInput(ImageCanvas canvas, Object input) {
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
index 9de9f9cdd..cdb8d5f5a 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
@@ -523,6 +523,7 @@ public class DiffTreeViewer extends TreeViewer {
item= children[index-1];
while (true) {
+ createChildren(item);
int n= item.getItemCount();
if (n <= 0)
break;
@@ -581,20 +582,6 @@ public class DiffTreeViewer extends TreeViewer {
private void internalSetSelection(TreeItem ti) {
if (ti != null) {
Object data= ti.getData();
- if (data == null) {
- //1GFDFH2: ITPJUI:ALL - Structure compare Ctrl-P causes error when previous in an unexpanded folder
- TreeItem parent= ti.getParentItem();
- if (parent != null) {
- Object parentData= parent.getData();
- if (parentData != null) {
- expandToLevel(parentData, 99);
- TreeItem[] items= parent.getItems();
- if (items != null && items.length > 0)
- data= items[items.length-1].getData();
- }
- }
- }
-
if (data != null)
setSelection(new StructuredSelection(data), true);
}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
index ac912f021..170a3c311 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
@@ -485,11 +485,8 @@ public class Differencer {
* @param input the object for which to return children
*/
protected Object[] getChildren(Object input) {
- if (input instanceof IStructureComparator) {
- Object[] children= ((IStructureComparator)input).getChildren();
- if (children != null && children.length > 0)
- return children;
- }
+ if (input instanceof IStructureComparator)
+ return ((IStructureComparator)input).getChildren();
return null;
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
index 7f99f4663..cb944ea0d 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
@@ -11,6 +11,36 @@
<h1>
Eclipse Platform Build Notes<br>
Compare (including example)</h1>
+Eclipse SDK Build - July ???, 2001
+
+<h2>
+What's new in this drop</h2>
+
+<h3>
+API changes</h3>
+
+<h3>
+API Additions</h3>
+
+<h3>
+Other highlights</h3>
+
+<h2>
+Known deficiencies</h2>
+
+<h2>
+Problem reports fixed</h2>
+1GFDFH2: ITPJUI:ALL - Structure compare Ctrl-P causes error when previous in an unexpanded folder<br>
+1GF2JX7: ITPUI:ALL - Compare wrong for empty folders<br>
+1GEV5NV: ITPVCM:ALL - Using up/down arrow keys in sync view structure tree changs focus<br>
+1GFINFX: ITPUI:ALL - Remove Bad words<br>
+
+<h2>
+Problem reports closed</h2>
+1GF0E5W: ITPJUI:WINNT - Compare: probably shouldn't be passing streams around<br>
+
+<h1>
+<hr WIDTH="100%"></h1>
Eclipse SDK Build 121 - June 8th, 2001
<h2>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
index 34ea9d1b7..e1e560bcf 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
@@ -118,7 +118,7 @@ public abstract class ContentMergeViewer extends ContentViewer implements IPrope
handleResizeAncestor(0, 0, 0, 0);
}
- fLeftLabel.getSize(); // WORKAROUND FOR PR
+ fLeftLabel.getSize(); // without this resizing would not always work
if (centerWidth > 3) {
fLeftLabel.setBounds(0, y, width1+1, headerHeight);
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index e386b199f..c9801b0bc 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -584,7 +584,20 @@ public class TextMergeViewer extends ContentMergeViewer {
);
}
+ /**
+ * Called whenever setFocus() is called on the ContentViewer's top level SWT Composite.
+ * This implementation sets the focus to the first enabled text widget.
+ */
/* package */ boolean internalSetFocus() {
+ if (fFocusPart == null) {
+ if (fLeft != null && fLeft.getEnabled()) {
+ fFocusPart= fLeft;
+ } else if (fRight != null && fRight.getEnabled()) {
+ fFocusPart= fRight;
+ } else if (fAncestor != null && fAncestor.getEnabled()) {
+ fFocusPart= fAncestor;
+ }
+ }
if (fFocusPart != null) {
StyledText st= fFocusPart.getTextWidget();
if (st != null)
@@ -887,12 +900,6 @@ public class TextMergeViewer extends ContentMergeViewer {
}
tp.setEnabled(enabled);
- if (fFocusPart == null) {
- if (enabled) {
- fFocusPart= tp;
- fFocusPart.getTextWidget().setFocus();
- }
- }
return enabled;
}
@@ -2068,7 +2075,7 @@ public class TextMergeViewer extends ContentMergeViewer {
// before we set fCurrentDiff we change the selection
// so that the paint code uses the old background colors
- // otherwise we get screen cheese
+ // otherwise selection isn't drawn correctly
if (isThreeWay())
fAncestor.setSelection(d.fAncestorPos);
fLeft.setSelection(d.fLeftPos);
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
index db531e7fd..a7a8e3131 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
@@ -15,7 +15,7 @@ import org.eclipse.compare.CompareEditorInput;
/**
* Supports cross-pane navigation through differences.
- * XXX: Design is bogus because the feature had to be added without touching API.
+ * XXX: Design is as it is because the feature had to be added without touching API.
*/
public class CompareNavigator {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java
index c4b29fe48..1df9e396a 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareViewerSwitchingPane.java
@@ -76,6 +76,8 @@ public abstract class CompareViewerSwitchingPane extends Pane
fControlVisibility= visibility;
setViewer(new NullViewer(this));
+
+ CompareNavigator.hookNavigation(this);
addDisposeListener(
new DisposeListener() {
@@ -98,7 +100,7 @@ public abstract class CompareViewerSwitchingPane extends Pane
public Viewer getViewer() {
return fViewer;
}
-
+
/**
* Sets the current viewer.
*/
@@ -122,9 +124,9 @@ public abstract class CompareViewerSwitchingPane extends Pane
fViewer.setInput(null);
- if (content != null && !content.isDisposed()) {
+ if (content != null && !content.isDisposed())
content.dispose();
- }
+
} else
oldEmpty= false;
setContent(null);
@@ -132,11 +134,12 @@ public abstract class CompareViewerSwitchingPane extends Pane
fViewer= newViewer;
if (fViewer != null) {
- // workaround: setContent changes the visibility of the CustomPane
- boolean old= getVisible();
+ // we have to remember and restore the old visibility of the CustomPane
+ // since setContent changes the visibility
+ boolean old= getVisible();
+ Control newControl= fViewer.getControl();
setContent(fViewer.getControl());
- setVisible(old);
- // end of workaround
+ setVisible(old); // restore old visibility
boolean newEmpty= isEmpty();
@@ -145,15 +148,12 @@ public abstract class CompareViewerSwitchingPane extends Pane
if (fViewer instanceof StructuredViewer)
((StructuredViewer)fViewer).addDoubleClickListener(this);
- if (oldEmpty != newEmpty) {// relayout my container
+ if (oldEmpty != newEmpty) { // relayout my container
Composite parent= getParent();
if (parent instanceof Splitter)
((Splitter)parent).setVisible(this, fControlVisibility ? !newEmpty : true);
- //else
- // parent.layout(true);
}
- //else if (!newEmpty)// otherwise just relayout myself
layout(true);
}
}
@@ -204,11 +204,27 @@ public abstract class CompareViewerSwitchingPane extends Pane
for (int i= 0; i < listeners.length; i++)
((ISelectionChangedListener) listeners[i]).selectionChanged(ev);
}
+
+ private boolean hasFocus2() {
+ // do we have focus?
+ Display display= getDisplay();
+ if (display != null)
+ for (Control focus= display.getFocusControl(); focus != null; focus= focus.getParent())
+ if (focus == this)
+ return true;
+ return false;
+ }
+ /**
+ * If the old viewer had focus, new setInput tries to set
+ * focus on new viewer too.
+ */
public void setInput(Object input) {
if (fInput == input)
return;
+
+ boolean hadFocus= hasFocus2();
try {
if (fViewer != null)
@@ -247,7 +263,9 @@ public abstract class CompareViewerSwitchingPane extends Pane
Object data= c.getData(CompareUI.COMPARE_VIEWER_TITLE);
if (data instanceof String)
title= (String) data;
- }
+ if (hadFocus)
+ c.setFocus();
+ }
}
setText(title != null ? title : "");
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
index 169aa73bf..453bf6b25 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
@@ -62,15 +62,9 @@ public class ImageMergeViewer extends ContentMergeViewer {
}
public void createControls(Composite composite) {
- fAncestor= new ImageCanvas(composite, SWT.NONE);
- CompareNavigator.hookNavigation(fAncestor);
-
- fLeft= new ImageCanvas(composite, SWT.NONE);
- CompareNavigator.hookNavigation(fLeft);
- fLeft.setFocus();
-
- fRight= new ImageCanvas(composite, SWT.NONE);
- CompareNavigator.hookNavigation(fRight);
+ fAncestor= new ImageCanvas(composite, SWT.NO_FOCUS);
+ fLeft= new ImageCanvas(composite, SWT.NO_FOCUS);
+ fRight= new ImageCanvas(composite, SWT.NO_FOCUS);
}
private static void setInput(ImageCanvas canvas, Object input) {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
index 9de9f9cdd..cdb8d5f5a 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
@@ -523,6 +523,7 @@ public class DiffTreeViewer extends TreeViewer {
item= children[index-1];
while (true) {
+ createChildren(item);
int n= item.getItemCount();
if (n <= 0)
break;
@@ -581,20 +582,6 @@ public class DiffTreeViewer extends TreeViewer {
private void internalSetSelection(TreeItem ti) {
if (ti != null) {
Object data= ti.getData();
- if (data == null) {
- //1GFDFH2: ITPJUI:ALL - Structure compare Ctrl-P causes error when previous in an unexpanded folder
- TreeItem parent= ti.getParentItem();
- if (parent != null) {
- Object parentData= parent.getData();
- if (parentData != null) {
- expandToLevel(parentData, 99);
- TreeItem[] items= parent.getItems();
- if (items != null && items.length > 0)
- data= items[items.length-1].getData();
- }
- }
- }
-
if (data != null)
setSelection(new StructuredSelection(data), true);
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
index ac912f021..170a3c311 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
@@ -485,11 +485,8 @@ public class Differencer {
* @param input the object for which to return children
*/
protected Object[] getChildren(Object input) {
- if (input instanceof IStructureComparator) {
- Object[] children= ((IStructureComparator)input).getChildren();
- if (children != null && children.length > 0)
- return children;
- }
+ if (input instanceof IStructureComparator)
+ return ((IStructureComparator)input).getChildren();
return null;
}

Back to the top