jdk8 Udiff src/share/classes/sun/awt/SunToolkit.java (original) (raw)
@@ -512,10 +512,23 @@ */ public static void postEvent(AppContext appContext, AWTEvent event) { if (event == null) { throw new NullPointerException(); }
AWTAccessor.SequencedEventAccessor sea = AWTAccessor.getSequencedEventAccessor();
if (sea != null && sea.isSequencedEvent(event)) {
AWTEvent nested = sea.getNested(event);
if (nested.getID() == WindowEvent.WINDOW_LOST_FOCUS &&
nested instanceof TimedWindowEvent)
{
TimedWindowEvent twe = (TimedWindowEvent)nested;
((SunToolkit)Toolkit.getDefaultToolkit()).
setWindowDeactivationTime((Window)twe.getSource(), twe.getWhen());
}
}
// All events posted via this method are system-generated. // Placing the following call here reduces considerably the // number of places throughout the toolkit that would // otherwise have to be modified to precisely identify // system-generated events.
@@ -1963,10 +1976,32 @@ */ public boolean isNativeGTKAvailable() { return false; }
- private static final Object DEACTIVATION_TIMES_MAP_KEY = new Object();
- public synchronized void setWindowDeactivationTime(Window w, long time) {
AppContext ctx = getAppContext(w);
WeakHashMap<Window, Long> map = (WeakHashMap<Window, Long>)ctx.get(DEACTIVATION_TIMES_MAP_KEY);
if (map == null) {
map = new WeakHashMap<Window, Long>();
ctx.put(DEACTIVATION_TIMES_MAP_KEY, map);
}
map.put(w, time);
- }
- public synchronized long getWindowDeactivationTime(Window w) {
AppContext ctx = getAppContext(w);
WeakHashMap<Window, Long> map = (WeakHashMap<Window, Long>)ctx.get(DEACTIVATION_TIMES_MAP_KEY);
if (map == null) {
return -1;
}
Long time = map.get(w);
return time == null ? -1 : time;
- }
// Cosntant alpha public boolean isWindowOpacitySupported() { return false; }