 			return;
 		}
 
-		if (type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN)
+		if (type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN 
+				|| type == Event.ACTIVATE || type == Event.DEACTIVATE)
 		{
 			// also listen to stage if allowed
 			try

		this.listener = listener;
	}

	public function stageListener(event:MouseEvent):void
	{
		if (event.target is Stage)
			listener(event);

			return;
		}

		if (type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN 
				|| type == Event.ACTIVATE || type == Event.DEACTIVATE)
		{
			// also listen to stage if allowed
			try
