Community
Participate
Working Groups
I have a canvas with multiple fake widgets on it. When my canvas gains focus, I need to know whether I should set "fake focus" on the first or the last fake widget. In other words, I need to know whether SHIFT+TAB occurred, or something else. There is no state mask on a FocusEvent, so I don't know how to do this. Our current workaround is just to place focus on the most-recently-focused fake item, or the first one if there is no MRU.
This information is not available from the operating systems. For example, WM_SETFOCUS on Windows won't tell you whether focus was assigned using the keyboard or the mouse.
Do you have any ideas as to how AWT/Swing with mixed heavyweight composites with lightweight components inside handle TAB/Shift+TAB? I could always try a display filter but it seems like a hack.
I have no knowledge about how Swing works other than to mixing heavyweights and lightweights is not recommended/supported. I read this somewhere on the web.
Good reply. So, resolved, "CANTFIX".
Actually, we should leave this bug open. On some platforms, native components such as the tool bar contain lightweight components (ie. on Windows, each tool item is not an HWND). The strategy they generally use is to remember the item that had focus and restore that item when they get focus. The shell also does this when it is activated. So, WONTFIX is premature. Post 3.1 is better.
... and CANTFIX because AWT/Swing CANTFIX or WONTFIX doesn't apply.
*** Bug 135874 has been marked as a duplicate of this bug. ***
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.