void runModalLoop(ModalContext context) {
long lastPaintTime = System.currentTimeMillis();
while (!shutdownPending && (context == null || context.isModalLoopRunning())) {
EventQueue eventQueue = toolkit.getSystemEventQueueImpl();
NativeEvent ne = nativeQueue.getNextEvent();
if (ne != null) {
dispatcher.onEvent(ne);
MarkerEvent marker = new MarkerEvent(this, 0);
eventQueue.postEvent(marker);
for (AWTEvent ae = eventQueue.getNextEventNoWait();