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

Leonid Romanov leonid.romanov at oracle.com
Mon Aug 20 04:40:20 PDT 2012

- 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

-----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 
  - 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