public void KeyTipSelect(KryptonRibbon ribbon)
{
// Can the custom control take the focus
if (_customControl.LastCustomControl.CanFocus)
{
// Prevent the ribbon from killing keyboard mode when it loses the focus,
// as this causes the tracking windows to be killed and we want them kept
ribbon.LostFocusLosesKeyboard = false;
// Prevent the restore of focus when we fill the keyboard mode, as the focus
// has been placed on the custom control and so focus is allowed to change
ribbon.IgnoreRestoreFocus = true;
// Exit the use of keyboard mode
ribbon.KillKeyboardMode();
// Push focus to the specified target control
_customControl.LastCustomControl.Focus();
// If the custom control is inside a popup window
if (_customControl.LastParentControl is VisualPopupGroup)
{
// Ensure that the previous ribbon focus is restored when the popup window is dismissed
VisualPopupGroup popupGroup = (VisualPopupGroup)_customControl.LastParentControl;
popupGroup.RestorePreviousFocus = true;
}
}
}