提交 5fbe1059 编写于 作者: D dcherepanov

7156191: [macosx] Can't type into applet demos in Pivot

Reviewed-by: art
上级 be8c2d4b
......@@ -112,28 +112,19 @@ public class CEmbeddedFrame extends EmbeddedFrame {
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));
}
}
......@@ -204,4 +204,8 @@ final class CPlatformResponder {
}
}
}
void handleWindowFocusEvent(boolean gained) {
peer.notifyActivation(gained);
}
}
......@@ -49,9 +49,9 @@ public class CPlatformView extends CFRetainedResource {
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);
......
......@@ -208,6 +208,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
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 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
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 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
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) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册