blob: 10946542b69de313dd3bd88fd4c2e73c8ab72880 [file] [log] [blame]
package sun.awt.X11;
import java.util.LinkedHashMap;
import java.util.Map;
public class WindowStateMachine {
private static WindowStateMachine machine = new WindowStateMachine();
public static WindowStateMachine get() {
return machine;
}
private enum State {
RAISED_AND_WAITING_FOR_MAP_NOTIFY,
MAPPED_AND_WAITING_FOR_MAP_NOTIFY,
}
private Map<Long, State> waitingWindows = new LinkedHashMap<>();
public void waitForNotifyAfterRaise (Long windowId) {
waitingWindows.put(windowId, State.RAISED_AND_WAITING_FOR_MAP_NOTIFY);
}
public void waitForNotifyAfterMap (Long windowId) {
waitingWindows.put(windowId, State.MAPPED_AND_WAITING_FOR_MAP_NOTIFY);
}
public void notify(Long windowId) {
waitingWindows.remove(windowId);
}
public boolean isWaitingForWindowShow () {
return !waitingWindows.isEmpty();
}
}