 
 		removeSWFBridge(bridge);
 	}
+
+	private function forwardWindowActivationEventsToChildrenHandler(event:Event):void
+	{
+        var ourEvent:SWFBridgeEvent;
+
+        if (event.type == FlexEvent.FLEX_WINDOW_ACTIVATE)
+            ourEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_AIR_WINDOW_ACTIVATE);
+        else if (event.type == FlexEvent.FLEX_WINDOW_DEACTIVATE)
+            ourEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_AIR_WINDOW_DEACTIVATE);
+        
+        dispatchEventFromSWFBridges(ourEvent, swfBridgeGroup.parentBridge)
+	}
+
+	private function windowActivationEventHandler(event:Event):void
+	{
+        var ourEvent:FlexEvent;
+
+        if (event.type == SWFBridgeEvent.BRIDGE_AIR_WINDOW_ACTIVATE)
+            ourEvent = new FlexEvent(FlexEvent.FLEX_WINDOW_ACTIVATE);
+        else if (event.type == SWFBridgeEvent.BRIDGE_AIR_WINDOW_DEACTIVATE)
+            ourEvent = new FlexEvent(FlexEvent.FLEX_WINDOW_DEACTIVATE);
+        
+        focusManager.dispatchEvent(ourEvent);
+		// restore focus if this focus manager had last focus
+	    if (focusManager.lastFocus && !focusManager.browserMode)
+	    	focusManager.lastFocus.setFocus();
+	    focusManager.lastAction = "ACTIVATE";
+	}
 }
 
 }

import flash.events.KeyboardEvent;
import flash.ui.Keyboard;

import mx.events.FocusRequestDirection;
import mx.events.SWFBridgeEvent;
import mx.events.SWFBridgeRequest;

		focusManager.addEventListener("mouseDownFM", mouseDownHandler);
		focusManager.addEventListener("addChildBridge", addChildBridgeHandler);
		focusManager.addEventListener("removeChildBridge", removeChildBridgeHandler);
		focusManager.addEventListener(FlexEvent.FLEX_WINDOW_ACTIVATE, forwardWindowActivationEventsToChildrenHandler);
		focusManager.addEventListener(FlexEvent.FLEX_WINDOW_DEACTIVATE, forwardWindowActivationEventsToChildrenHandler);
	}

	//--------------------------------------------------------------------------
