mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-25 01:30:10 +00:00
7156191: [macosx] Can't type into applet demos in Pivot
Reviewed-by: art
This commit is contained in:
parent
4a46c4fa60
commit
7f4d14efbe
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user