<AWT Dev> [8] Review request for CR 7124375: [macosx] Focus isn't transfered as expected between components

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Tue Aug 21 02:27:39 PDT 2012

Fix looks good.
20.08.2012 15:40, Leonid Romanov wrote:
> Hi,
> - One have lwkfm per appcontex is the cause of this CR. I believe it is not
> necessary. However, after my fix has been pushed in 8, I'll ask Yuri to run
> all the focus tests, including deployment tests to make sure that nothing
> has been broken.
> -  Thanks, I'll change javadoc
> - On Windows, thread-safety is ensured in the native code (unlike X and OS
> X, Windows implementation stores current focused window/focus owner in the
> native)
> -----Original Message-----
> From: Sergey Bylokhov [mailto:Sergey.Bylokhov at oracle.com]
> Sent: Monday, August 20, 2012 2:29 PM
> To: Leonid Romanov
> Cc: awt-dev at openjdk.java.net; macosx-port-dev-request at openjdk.java.net
> Subject: Re: [8] Review request for CR 7124375: [macosx] Focus isn't
> transfered as expected between components
> A few question
>    - Is it ok that previously we have lwkfm per appcontext but not now?
>    - javadoc for
> KeyboardFocusManagerPeerProvider.getKeyboardFocusManagerPeer() is not
> accurate
>    - synchronisation model was changed for LW and X kfmp from internal
> object to synchronisation on this, but on windows there is no
> synchronisation this is expected?
> 17.08.2012 21:59, Leonid Romanov wrote:
>> Hi,
>> Please review a fix for CR 7124375: [macosx] Focus isn't transfered as
> expected between components.
>> The main issue addressed by this fix is that information about current
> focused window and focus owner isn't shared among LWKeyboardFocusManagerPeer
> instances. Also, while the current KeyboardFocusManager code makes it look
> like each KeyboardFocusManager instance needs its own peer instance, the
> reality is different because both WKeyboardFocusManagerPeer and
> XKeyboardManagerPeer doesn't have non static fields. In other words, all the
> WKeyboardFocusManagerPeer/XKeyboardManagerPeer fields are static. Therefore,
> there is no need in in multiple peer instances, one singleton peer shared
> among all the KeyboardFocusManager instances is enough. This fix addresses
> that issue as well by explicitly turning KeyboardManagerPeer implementations
> into singletons for the sake of cleaner code.
>> Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7124375
>> Webrev: http://cr.openjdk.java.net/~leonidr/7124375/webrev.00/
>> Thanks,
>> Leonid.

Best regards, Sergey.

More information about the awt-dev mailing list