| Summary: | Clicking close X on Welcome screen or last part of maximized stack sends focus to nowhere | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Markus Keller <markus.kell.r> |
| Component: | UI | Assignee: | Eric Moffatt <emoffatt> |
| Status: | VERIFIED FIXED | QA Contact: | Eric Moffatt <emoffatt> |
| Severity: | major | ||
| Priority: | P3 | CC: | carolynmacleod4, daniel_megert, emoffatt, pwebster |
| Version: | 4.3 | ||
| Target Milestone: | 4.4 M6 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | candidate43 | ||
| Bug Depends on: | |||
| Bug Blocks: | 403040 | ||
Interesting. I always click on the "Workbench" icon. Doing this still works ok. So there is something different about the close x behavior. I've just tried both ways; clicking on 'x' and using the button on the page. They both result in there being no active part, likely because there are no parts available from the activation history... We should see if we can adopt a better answer than 'do nothing' if we can't identify a candidate through the history... If there's no active part after clicking on the "Workbench" icon, then why am I able to immediately paste (i.e. type ctrl+v) into the Package Explorer (i.e. eclipse creates a nice little class for me)? (In reply to comment #2) > I've just tried both ways; clicking on 'x' and using the button on the page. > They both result in there being no active part Not for me. Like Carolyn, I consistently see the focus lost after I clicked the X. Maybe you got tricked by the confusing theme colors (bug 378672) and didn't see which part was active? When I select an element in the Package Explorer, do Help > Welcome, and then click the X, then the result is that the TreeItem has keyboard focus, but the workbench doesn't render the Package Explorer part as active, and key bindings don't work. Actually, it's not just Welcome, but any maximized stack where the last part gets closed. I suspect this is the same issue. While this workflow isn't common it is apparent that we need to give some luv to the part activation logic. Not sure how much we'll be able to get done for Kepler but we should at least make a start... Committed: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=f4cbb959b0b3d390b721883f5013a53c18babdeb This requests an activation on 'unzoom' (which automatically happens if a currently maximized stack gets torn down due to a view closure). Verified in 4.4.0.I20140303-2000. |
I20121113-0800 - new workspace - click the close X in the Welcome screen tab => expected: Focus is in Package Explorer, like in 3.8 => was: Focus is nowhere, pasting gives: !ENTRY org.eclipse.e4.ui.workbench 4 0 2012-11-15 16:15:23.400 !MESSAGE !STACK 0 org.eclipse.e4.core.di.InjectionException: org.eclipse.core.commands.NotHandledException: There is no handler to execute for command org.eclipse.ui.ed it.paste at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:231) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:212) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:131) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:171) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:277) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:496) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:547) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:368) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:314) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:83) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1521) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4976) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2546) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3756) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1026) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:915) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:79) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:587) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:542) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) at org.eclipse.equinox.launcher.Main.run(Main.java:1438) Caused by: org.eclipse.core.commands.NotHandledException: There is no handler to execute for command org.eclipse.ui.edit.paste at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56) ... 45 more