Merge pull request #1395 from Azaezel/alpha41/beResponsible

setFirstResonder Safeties
This commit is contained in:
Brian Roberts 2025-02-25 23:36:38 -06:00 committed by GitHub
commit fef87c59c3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 7 additions and 6 deletions

View file

@ -2169,7 +2169,7 @@ void GuiCanvas::setFirstResponder( GuiControl* newResponder )
if( oldResponder && ( oldResponder != newResponder ) )
oldResponder->onLoseFirstResponder();
if( newResponder && ( newResponder != oldResponder ) )
if( newResponder && ( newResponder != oldResponder ) && newResponder->isProperlyAdded())
newResponder->onGainFirstResponder();
}

View file

@ -2230,10 +2230,10 @@ void GuiControl::setFirstResponder( GuiControl* firstResponder )
void GuiControl::setFirstResponder()
{
if( mAwake && mVisible )
if( mAwake && mVisible && isProperlyAdded())
{
GuiControl *parent = getParent();
if ( mProfile->mCanKeyFocus == true && parent != NULL )
if ( mProfile->mCanKeyFocus == true && parent && parent->isProperlyAdded())
parent->setFirstResponder( this );
}
}

View file

@ -741,7 +741,7 @@ class GuiControl : public SimGroup
GuiControl *getFirstResponder() { return mFirstResponder; }
/// Occurs when the control gains first-responder status.
virtual void onGainFirstResponder();
void onGainFirstResponder();
/// Occurs when the control loses first-responder status.
virtual void onLoseFirstResponder();

View file

@ -233,7 +233,7 @@ void GuiInspectorField::setFirstResponder( GuiControl *firstResponder )
{
Parent::setFirstResponder( firstResponder );
if ( firstResponder == this || firstResponder == mEdit )
if (( firstResponder == this || firstResponder == mEdit ) && firstResponder->isProperlyAdded())
{
mInspector->setHighlightField( this );
}
@ -851,7 +851,8 @@ void GuiInspectorField::setHLEnabled( bool enabled )
edit->setCursorPos(0);
}
}
_executeSelectedCallback();
if (isProperlyAdded())
_executeSelectedCallback();
}
}