src/share/classes/sun/awt/SunToolkit.java
Print this page
@@ -546,10 +546,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()).
+ setDeactivationTime((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.
@@ -1959,10 +1972,21 @@
*/
public boolean isNativeGTKAvailable() {
return false;
}
+ private WeakHashMap<Window, Long> deactivationTimes = new WeakHashMap<Window, Long>();
+
+ public synchronized void setDeactivationTime(Window w, long time) {
+ deactivationTimes.put(w, time);
+ }
+
+ public synchronized long getDeactivationTime(Window w) {
+ Long time = deactivationTimes.get(w);
+ return time == null ? -1 : time;
+ }
+
// Cosntant alpha
public boolean isWindowOpacitySupported() {
return false;
}