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;
     }