Mercurial > hg > icedtea9-forest > jdk
changeset 5553:2eca75e0a063
7156191: [macosx] Can't type into applet demos in Pivot
Reviewed-by: art
author | dcherepanov |
---|---|
date | Fri, 18 May 2012 19:39:24 +0400 |
parents | 1d75ff45586e |
children | 1ee12bca4823 |
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(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java Thu May 17 22:21:27 2012 +0400 +++ b/src/macosx/classes/sun/lwawt/macosx/CEmbeddedFrame.java Fri May 18 19:39:24 2012 +0400 @@ -112,28 +112,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 Thu May 17 22:21:27 2012 +0400 +++ b/src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java Fri May 18 19:39:24 2012 +0400 @@ -204,4 +204,8 @@ } } } + + void handleWindowFocusEvent(boolean gained) { + peer.notifyActivation(gained); + } }
--- a/src/macosx/classes/sun/lwawt/macosx/CPlatformView.java Thu May 17 22:21:27 2012 +0400 +++ b/src/macosx/classes/sun/lwawt/macosx/CPlatformView.java Fri May 18 19:39:24 2012 +0400 @@ -49,9 +49,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 = new CGLLayer(peer);
--- a/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Thu May 17 22:21:27 2012 +0400 +++ b/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Fri May 18 19:39:24 2012 +0400 @@ -208,6 +208,7 @@ private 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 + private CPlatformResponder responder; public CPlatformWindow(final PeerType peerType) { super(0, true); @@ -232,8 +233,9 @@ final long parentNSWindowPtr = (owner != null ? owner.getNSWindowPtr() : 0); String warningString = target.getWarningString(); + responder = new CPlatformResponder(peer, false); contentView = new CPlatformView(); - contentView.initialize(peer); + contentView.initialize(peer, responder); final long nativeWindowPtr = nativeCreateNSWindow(contentView.getAWTView(), styleBits, 0, 0, 0, 0); setPtr(nativeWindowPtr); @@ -865,7 +867,7 @@ focusLogger.fine("the app is inactive, so the notification is ignored"); return; } - peer.notifyActivation(gained); + responder.handleWindowFocusEvent(gained); } private void deliverMoveResizeEvent(int x, int y, int width, int height) {