public void SetFocus(Widget w)
{
if (!w.CanFocus)
return;
if (focused == w)
return;
if (focused != null)
focused.HasFocus = false;
focused = w;
focused.HasFocus = true;
Container wc = w as Container;
if (wc != null)
wc.EnsureFocus ();
focused.PositionCursor ();
}