Mercurial > hg > release > icedtea7-forest-2.2 > jdk
changeset 5315:2d8275793306
7156191: [macosx] Can't type into applet demos in Pivot
Reviewed-by: ant, art
author | andrew |
---|---|
date | Wed, 12 Jun 2013 11:35:38 +0100 |
parents | fb619d31dd14 |
children | a3084cc2eb4d |
files | src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java src/macosx/classes/sun/lwawt/macosx/CPlatformView.java src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java |
diffstat | 4 files changed, 16 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java Fri Mar 16 19:59:04 2012 +0400 +++ b/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java Wed Jun 12 11:35:38 2013 +0100 @@ -106,28 +106,19 @@ public void handleFocusEvent(boolean focused) { this.focused = focused; - updateOverlayWindowActiveState(); + if (parentWindowActive) { + responder.handleWindowFocusEvent(focused); + } } public void handleWindowFocusEvent(boolean parentWindowActive) { this.parentWindowActive = parentWindowActive; - updateOverlayWindowActiveState(); + if (focused) { + responder.handleWindowFocusEvent(parentWindowActive); + } } public boolean isParentWindowActive() { return parentWindowActive; } - - /* - * May change appearance of contents of window, and generate a - * WINDOW_ACTIVATED event. - */ - private void updateOverlayWindowActiveState() { - final boolean showAsFocused = parentWindowActive && focused; - dispatchEvent( - new FocusEvent(this, showAsFocused ? - FocusEvent.FOCUS_GAINED : - FocusEvent.FOCUS_LOST)); - } - }
--- a/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java Fri Mar 16 19:59:04 2012 +0400 +++ b/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java Wed Jun 12 11:35:38 2013 +0100 @@ -213,4 +213,8 @@ } } } + + void handleWindowFocusEvent(boolean gained) { + peer.notifyActivation(gained); + } }
--- a/src/macosx/classes/sun/lwawt/macosx/CPlatformView.java Fri Mar 16 19:59:04 2012 +0400 +++ b/src/macosx/classes/sun/lwawt/macosx/CPlatformView.java Wed Jun 12 11:35:38 2013 +0100 @@ -50,9 +50,9 @@ super(0, true); } - public void initialize(LWWindowPeer peer) { + public void initialize(LWWindowPeer peer, CPlatformResponder responder) { this.peer = peer; - this.responder = new CPlatformResponder(peer, false); + this.responder = responder; if (!LWCToolkit.getSunAwtDisableCALayers()) { this.windowLayer = createCGLayer();
--- a/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Fri Mar 16 19:59:04 2012 +0400 +++ b/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Wed Jun 12 11:35:38 2013 +0100 @@ -205,6 +205,7 @@ private LWWindowPeer peer; protected CPlatformView contentView; protected CPlatformWindow owner; + private CPlatformResponder responder; protected boolean visible = false; // visibility status from native perspective private boolean undecorated; // initialized in getInitialStyleBits() private Rectangle normalBounds = null; // not-null only for undecorated maximized windows @@ -228,8 +229,9 @@ final int styleBits = getInitialStyleBits(); + responder = createPlatformResponder(); contentView = createContentView(); - contentView.initialize(peer); + contentView.initialize(peer, responder); final long nativeWindowPtr = nativeCreateNSWindow(contentView.getAWTView(), styleBits, 0, 0, 0, 0); setPtr(nativeWindowPtr); @@ -677,6 +679,7 @@ focusLogger.fine("the app is inactive, so the request is rejected"); return true; } + responder.handleWindowFocusEvent(gained); return false; }