8056911: Remove internal API usage from ExtendedRobot class

Reviewed-by: serb
This commit is contained in:
Dmitriy Ermashov 2014-10-30 15:44:37 +03:00
parent 565125c84c
commit bbf16fb931
2 changed files with 19 additions and 13 deletions

View File

@ -34,9 +34,12 @@ import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.awt.peer.RobotPeer;
import java.lang.reflect.InvocationTargetException;
import java.security.AccessController;
import sun.awt.AWTPermissions;
import sun.awt.ComponentFactory;
import sun.awt.SunToolkit;
import sun.awt.OSInfo;
import sun.awt.image.SunWritableRaster;
/**
@ -555,15 +558,21 @@ public class Robot {
*/
public synchronized void waitForIdle() {
checkNotDispatchThread();
// post a dummy event to the queue so we know when
// all the events before it have been processed
try {
SunToolkit.flushPendingEvents();
EventQueue.invokeAndWait( new Runnable() {
public void run() {
// dummy implementation
}
} );
// 7185258: realSync() call blocks all DnD tests on OS X
if (AccessController.doPrivileged(OSInfo.getOSTypeAction()) = OSInfo.OSType.MACOSX) {
// post a dummy event to the queue so we know when
// all the events before it have been processed
EventQueue.invokeAndWait( new Runnable() {
public void run() {
// dummy implementation
}
} );
} else {
((SunToolkit) Toolkit.getDefaultToolkit()).realSync();
}
} catch(InterruptedException ite) {
System.err.println("Robot.waitForIdle, non-fatal exception caught:");
ite.printStackTrace();

View File

@ -23,9 +23,6 @@
* questions.
*/
import sun.awt.ExtendedKeyCodes;
import sun.awt.SunToolkit;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.GraphicsDevice;
@ -33,6 +30,7 @@ import java.awt.Toolkit;
import java.awt.Point;
import java.awt.MouseInfo;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
/**
* ExtendedRobot is a subclass of {@link java.awt.Robot}. It provides some convenience methods that are
@ -178,8 +176,7 @@ public class ExtendedRobot extends Robot {
* dispatching thread
*/
public synchronized void waitForIdle(int delayValue) {
SunToolkit.flushPendingEvents();
((SunToolkit) Toolkit.getDefaultToolkit()).realSync();
super.waitForIdle();
delay(delayValue);
}
@ -382,7 +379,7 @@ public class ExtendedRobot extends Robot {
* @see java.awt.event.KeyEvent
*/
public void type(char c) {
type(ExtendedKeyCodes.getExtendedKeyCodeForChar(c));
type(KeyEvent.getExtendedKeyCodeForChar(c));
}
/**