Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 185929

Summary: [Progress] Compare editor not active after Compare With > Each Other
Product: [Eclipse Project] Platform Reporter: Markus Keller <markus.kell.r>
Component: UIAssignee: Platform UI Triaged <platform-ui-triaged>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: Michael.Valenta, pwebster
Version: 3.3Keywords: helpwanted
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard: stalebug

Description Markus Keller CLA 2007-05-08 06:07:43 EDT
HEAD

Select 2 *.java files and choose context menu > Compare With > Each Other.
=> Compare editor is opened, Navigator view stays active.
=> Cannot start stepping by just clicking the Next Difference toolbar button.
Comment 1 Michael Valenta CLA 2007-05-08 09:17:22 EDT
This works for me. I've tried it with the linking enabled and disabled from the Navigator, the Project Explorer and the Packages Explorer. This was using build  I20070503-1400. Please reopen if you can provide more details about the conditions that cause the failure.
Comment 2 Markus Keller CLA 2007-05-09 08:41:55 EDT
I can still reproduce in clean installs of I20070508-0800 and 3.3M7, e.g. with the steps from bug 185747 (new workspace == all settings as defaults).

The compare editor is opened and gets focus. Then, a progress dialog appears quickly, and after the dialog is closed, the History view has focus, not the editor.

Also happens on Linux/GTK (over VNC).
Comment 3 Michael Valenta CLA 2007-05-09 10:13:23 EDT
I was able to reproduce this but, for me focus went to the Packages Explorer. However, on subsequent compares, focus goes to the editor as expected. Is this what you see are well?
Comment 4 Michael Valenta CLA 2007-05-09 10:16:07 EDT
Ignore my last question. I am able to get it repeatedly now.
Comment 5 Michael Valenta CLA 2007-05-09 10:51:50 EDT
The focus change is coming from the ProgressManager. Here's is a stack I got while debugging. The part being activated is the History View. In the scenario outlined above, my breakpoint first got hit when the Compare Editor was activated and then got hit again when the History view got activated. This indicates to me that the ProgressManager is activating the wrong part when the progress dialog closes.

Thread [main] (Suspended (breakpoint at line 3248 in WorkbenchPage))	
	WorkbenchPage.setActivePart(IWorkbenchPart) line: 3248	
	WorkbenchPage.requestActivation(IWorkbenchPart) line: 2832	
	ViewPane(PartPane).requestActivation() line: 265	
	ViewPane(PartPane).handleEvent(Event) line: 229	
	EventTable.sendEvent(Event) line: 66	
	Composite(Widget).sendEvent(Event) line: 938	
	Composite(Widget).sendEvent(int, Event, boolean) line: 962	
	Composite(Widget).sendEvent(int) line: 943	
	Shell.setActiveControl(Control) line: 1272	
	Tree(Control).sendFocusEvent(int) line: 2366	
	Tree(Widget).wmSetFocus(int, int, int) line: 2176	
	Tree(Control).WM_SETFOCUS(int, int) line: 4274	
	Tree.WM_SETFOCUS(int, int) line: 6204	
	Tree(Control).windowProc(int, int, int, int) line: 3730	
	Tree.windowProc(int, int, int, int) line: 5239	
	Display.windowProc(int, int, int, int) line: 4355	
	OS.SetFocus(int) line: not available [native method]	
	Tree(Control).forceFocus() line: 963	
	Tree(Control).setSavedFocus() line: 2958	
	Shell(Decorations).restoreFocus() line: 819	
	Shell.setEnabled(boolean) line: 1286	
	ProgressManager.setUserInterfaceActive(boolean) line: 1247	
	ProgressManager.access$4(ProgressManager, boolean) line: 1242	
	ProgressManager$3.run() line: 913	
	BusyIndicator.showWhile(Display, Runnable) line: 67	
	ProgressManager.busyCursorWhile(Runnable, ProgressMonitorJobsDialog) line: 942	
	ProgressManager.busyCursorWhile(IRunnableWithProgress) line: 917	
	ProgressManager.run(boolean, boolean, IRunnableWithProgress) line: 1125	
	CompareEditor$EditorCompareContainer(CompareContainer).run(boolean, boolean, IRunnableWithProgress) line: 80	
	CompareFileRevisionEditorInput(CompareEditorInput).run(boolean, boolean, IRunnableWithProgress) line: 1107	
	JavaMergeViewer(TextMergeViewer).doDiff() line: 3176	
	JavaMergeViewer(TextMergeViewer).update(boolean) line: 5447	
	JavaMergeViewer(TextMergeViewer).updateContent(Object, Object, Object) line: 2639	
	JavaMergeViewer(ContentMergeViewer).internalRefresh(Object) line: 713	
	JavaMergeViewer(ContentMergeViewer).inputChanged(Object, Object) line: 613	
	JavaMergeViewer(ContentViewer).setInput(Object) line: 251	
	JavaMergeViewer.setInput(Object) line: 135	
	CompareEditorInput$3(CompareViewerSwitchingPane).setInput(Object) line: 254	
	CompareFileRevisionEditorInput(CompareEditorInput).internalSetContentPaneInput(Object) line: 784	
	CompareEditorInput.access$7(CompareEditorInput, Object) line: 782	
	CompareEditorInput$13.run() line: 722	
	BusyIndicator.showWhile(Display, Runnable) line: 67	
	CompareFileRevisionEditorInput(CompareEditorInput).feed1(ISelection) line: 716	
	CompareFileRevisionEditorInput(CompareEditorInput).feedInput() line: 694	
	CompareFileRevisionEditorInput(CompareEditorInput).createContents(Composite) line: 524	
	CompareEditor.createCompareControl() line: 399	
	CompareEditor.access$2(CompareEditor) line: 369	
	CompareEditor$3.run() line: 326	
	RunnableLock.run() line: 35	
	UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 123	
	Display.runAsyncMessages(boolean) line: 3650	
	Display.readAndDispatch() line: 3287	
	Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 2365	
	Workbench.runUI() line: 2329	
	Workbench.access$4(Workbench) line: 2204	
	Workbench$4.run() line: 466	
	Realm.runWithDefault(Realm, Runnable) line: 289	
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 461	
	PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149	
	IDEApplication.start(IApplicationContext) line: 106	
	EclipseAppHandle.run(Object) line: 153	
	EclipseAppLauncher.runApplication(Object) line: 106	
	EclipseAppLauncher.start(Object) line: 76	
	EclipseStarter.run(Object) line: 363	
	EclipseStarter.run(String[], Runnable) line: 176	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 585	
	Main.invokeFramework(String[], URL[]) line: 497	
	Main.basicRun(String[]) line: 436	
	Main.run(String[]) line: 1162	
	Main.main(String[]) line: 1137	
Comment 6 Susan McCourt CLA 2009-07-09 19:38:12 EDT
As per http://wiki.eclipse.org/Platform_UI/Bug_Triage_Change_2009
Comment 7 Eclipse Webmaster CLA 2019-09-06 16:17:32 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.
Comment 8 Eclipse Genie CLA 2021-12-05 14:58:13 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug.

If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.