提交 58e74a92 编写于 作者: S serb

8232433: [macos 10.15] java/awt/Window/LocationAtScreenCorner/LocationAtScreenCorner.java may fail

Reviewed-by: prr
上级 e832f6f2
......@@ -1183,6 +1183,15 @@ JNF_COCOA_ENTER(env);
// ensure we repaint the whole window after the resize operation
// (this will also re-enable screen updates, which were disabled above)
// TODO: send PaintEvent
// the macOS may ignore our "setFrame" request, in this, case the
// windowDidMove() will not come and we need to manually resync the
// "java.awt.Window" and NSWindow locations, because "java.awt.Window"
// already uses location ignored by the macOS.
// see sun.lwawt.LWWindowPeer#notifyReshape()
if (!NSEqualRects(rect, [nsWindow frame])) {
[window _deliverMoveResizeEvent];
}
}];
JNF_COCOA_EXIT(env);
......
/*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -21,6 +21,7 @@
* questions.
*/
import java.awt.AWTException;
import java.awt.Frame;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
......@@ -31,15 +32,21 @@ import java.awt.Robot;
/**
* @test
* @key headful
* @bug 8201364
* @bug 8201364 8232433
* @summary Component.getLocation() should returns correct location if
* Component.setBounds() was ignored by the OS
*/
public final class LocationAtScreenCorner {
public static void main(final String[] args) throws Exception {
test(true);
test(false);
}
private static void test(final boolean undecorated) throws AWTException {
Robot robot = new Robot();
Frame frame = new Frame();
frame.setUndecorated(undecorated);
frame.setSize(200, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册