This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 394394 - Clicking close X on Welcome screen or last part of maximized stack sends focus to nowhere
Summary: Clicking close X on Welcome screen or last part of maximized stack sends focu...
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.3   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: 4.4 M6   Edit
Assignee: Eric Moffatt CLA
QA Contact: Eric Moffatt CLA
URL:
Whiteboard: candidate43
Keywords:
Depends on:
Blocks: 403040
  Show dependency tree
 
Reported: 2012-11-15 10:19 EST by Markus Keller CLA
Modified: 2014-03-04 14:15 EST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2012-11-15 10:19:13 EST
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
Comment 1 Carolyn MacLeod CLA 2012-11-15 14:10:38 EST
Interesting. I always click on the "Workbench" icon. Doing this still works ok.
So there is something different about the close x behavior.
Comment 2 Eric Moffatt CLA 2012-11-15 15:04:13 EST
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...
Comment 3 Carolyn MacLeod CLA 2012-11-15 15:44:35 EST
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)?
Comment 4 Markus Keller CLA 2012-11-16 06:12:03 EST
(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.
Comment 5 Dani Megert CLA 2013-03-12 10:15:44 EDT
Actually, it's not just Welcome, but any maximized stack where the last part gets closed. I suspect this is the same issue.
Comment 6 Eric Moffatt CLA 2013-03-14 15:05:47 EDT
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...
Comment 7 Eric Moffatt CLA 2014-02-28 10:04:28 EST
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).
Comment 8 Eric Moffatt CLA 2014-03-04 14:15:52 EST
Verified in 4.4.0.I20140303-2000.