void FocusHandler::requestModalFocus(Widget* widget) { if (mModalFocusedWidget != NULL && mModalFocusedWidget != widget) { throw GCN_EXCEPTION("Another widget allready has modal focus."); } mModalFocusedWidget = widget; if (mFocusedWidget != NULL && !mFocusedWidget->hasModalFocus()) { focusNone(); } }
void FocusHandler::requestModalFocus(Widget *const widget) { /* If there is another widget with modal focus, remove its modal focus * and put it on the modal widget stack. */ if (mModalFocusedWidget && mModalFocusedWidget != widget) { mModalStack.push_front(mModalFocusedWidget); mModalFocusedWidget = nullptr; } mModalFocusedWidget = widget; if (mFocusedWidget && !mFocusedWidget->isModalFocused()) focusNone(); }