EVALUATION
Name: rpR10076 Date: 08/02/2001
###@###.###
I have updated the description with a test case. It has a frame (with button1)
and a non-focusable window (with button2). The focusability of a window,
by the way, is now changed by setFocusableWindowState(boolean) method.
When the test starts, button1 has focus. You can check this by pressing
space bar. Button1 has focus listener, and it shows that if you click on
button2, button1 loses focus and then gains it back.
Moreover, if you double click on button2, button1 may lose focus without
regaining it. All these experiments were made with beta b73, on winNT,
and the bug looks still reproducible with that configuration.
======================================================================
Name: rpR10076 Date: 11/15/2001
commit to hopper and tiger
======================================================================
We spent some time investigating this, and it seems that it will take a
significant amount of work. We can begin working on it, but our focus
engineers thought this would be a risky project for Hopper. I'd like to
defer it to mantis if we can.
###@###.### 2002-03-22
Name: dmR10075 Date: 08/21/2002
Current implementation tries to achieve non-focusability in gentle way - if on
native level non-focusable window or component became focus owner then it starts
"focus rejection" process which returns focus to some focusable
window/components.
However, this doesn't work well sometimes and on Solaris it is even impossible
sometimes. So, it was decided to rewrite this implementation by using the means
of native system to make some window truly non-focusable.
On Windows, it is WM_MOUSEACTIVATE message in response to which we can return
MA_NOACTIVATE and window will not be activated. We also need to take care of the
mouse event caused activation because window controls make themself focus owners
on mouse events and thus activate window. We also should not activate windows in
calls to setVisible, toFront/toBack, setState
On Solaris, we can use overrideRedirect for Window as it is guaranteed to make
it non-focusable and for other windows we can set XmInput = False, which
according to ICCM, should make our windows NoInput windows.
###@###.### 2002-08-21
======================================================================
Need to see if this also resolves Swing bug 4218084.
###@###.### 2002-08-29
|