Community
Participate
Working Groups
This problem is causing the workbench to keep the editor tab in blue even when a view has focus somewhere else. 1) Open a .BMP file (opens MS Paint) 2) Click on the BMP file in the navigator, notice the editor tab is blue instead of white but the editor is disactivated. Looking at the stack trace below, notice the OleFrame is getting a WM_FOCUS message during the call to OleClientSite.deactivateInPlaceClient(). Thread [main] (Suspended (breakpoint at line 118 in EditorPane)) EditorPane.showFocus(boolean) line: 118 WorkbenchPage$1.run() line: 112 InternalPlatform.run(ISafeRunnable) line: 761 Platform.run(ISafeRunnable) line: 395 WorkbenchPage.activatePart(IWorkbenchPart, boolean, boolean) line: 107 WorkbenchPage.setActivePart(IWorkbenchPart) line: 1274 WorkbenchPage.requestActivation(IWorkbenchPart) line: 1097 EditorPane(PartPane).requestActivation() line: 216 EditorPane.requestActivation() line: 106 EditorPane(PartPane).handleEvent(Event) line: 174 EventTable.sendEvent(Event) line: 53 ViewForm(Widget).sendEvent(int, Event) line: 841 ViewForm(Widget).sendEvent(int) line: 831 Shell.setActiveControl(Control) line: 660 ==> OleFrame(Control).WM_SETFOCUS(int, int) line: 3445 OleFrame(Control).windowProc(int, int, int) line: 2497 Display.windowProc(int, int, int, int) line: 1692 COM.VtblCall(int, int) IOleInPlaceObject.InPlaceDeactivate() line: 15 ==> OleClientSite.deactivateInPlaceClient() line: 489 OleEditor.deactivateClient(IWorkbenchPart) line: 107 OleEditor.access$1(OleEditor, IWorkbenchPart) line: 103 OleEditor$1.partDeactivated(IWorkbenchPart) line: 59 PartListenerList$4.run() line: 97 InternalPlatform.run(ISafeRunnable) line: 761 Platform.run(ISafeRunnable) line: 395 PartListenerList.firePartDeactivated(IWorkbenchPart) line: 95 WorkbenchPage.firePartDeactivated(IWorkbenchPart) line: 599 WorkbenchPage.setActivePart(IWorkbenchPart) line: 1257 WorkbenchPage.requestActivation(IWorkbenchPart) line: 1097 ViewPane(PartPane).requestActivation() line: 216 ViewPane(PartPane).handleEvent(Event) line: 174 EventTable.sendEvent(Event) line: 53 ViewForm(Widget).sendEvent(int, Event) line: 841 ViewForm(Widget).sendEvent(int) line: 831 Shell.setActiveControl(Control) line: 660 Shell.WM_MOUSEACTIVATE(int, int) line: 899 Shell(Control).windowProc(int, int, int) line: 2478 Shell(Decorations).windowProc(int, int, int) line: 932 Display.windowProc(int, int, int, int) line: 1692 OS.DefWindowProc(int, int, int, int) Composite(Scrollable).callWindowProc(int, int, int) line: 71 Composite(Control).windowProc(int, int, int) line: 2512 Display.windowProc(int, int, int, int) line: 1692 OS.DefWindowProc(int, int, int, int) Composite(Scrollable).callWindowProc(int, int, int) line: 71 Composite(Control).windowProc(int, int, int) line: 2512 Display.windowProc(int, int, int, int) line: 1692 OS.DefWindowProc(int, int, int, int) ViewForm(Scrollable).callWindowProc(int, int, int) line: 71 ViewForm(Control).windowProc(int, int, int) line: 2512 Display.windowProc(int, int, int, int) line: 1692 OS.DefWindowProc(int, int, int, int) Composite(Scrollable).callWindowProc(int, int, int) line: 71 Composite(Control).windowProc(int, int, int) line: 2512 Display.windowProc(int, int, int, int) line: 1692 OS.CallWindowProc(int, int, int, int, int) Tree.callWindowProc(int, int, int) line: 145 Tree(Control).windowProc(int, int, int) line: 2512 Display.windowProc(int, int, int, int) line: 1692 OS.PeekMessage(MSG, int, int, int, int) Display.readAndDispatch() line: 1155 Workbench.runEventLoop() line: 675 Workbench.run(Object) line: 658 InternalBootLoader.run(String, URL, String, String[]) line: 820 BootLoader.run(String, URL, String, String[]) line: 285 Method.invoke(Object, Object[]) UIMain(Main).basicRun(String[]) line: 151 UIMain(Main).run(String[]) line: 498 UIMain.main(String[]) line: 52
I think I have fixed this. On deactivation, I was resizing/repositioning the editor to display in the top left corner. This caused the editor to grab the focus back again. Fixed 0515.