public override void Update(UpdateState state)
{
HasUpdated = true;
State.Time = (state != null)?state.Time:new GameTime();
State.PreviousKeyboardState = State.KeyboardState;
if (!HasFocus) mouse = new MouseState();
State.MouseState = mouse;
State.KeyboardState = Keyboard.GetState();
State.SharedData.Clear();
State.Update();
State.SharedData.Add("ExternalDraw", false);
State.SharedData["ExternalDraw"] = false;
inputManager.HandleMouseEvents(State);
State.MouseEvents.Clear();
base.Update(State);
if ((bool)State.SharedData["ExternalDraw"]) DoRedraw = true;
}