mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-12 23:24:41 +00:00
setFirstResonder Safeties
make sure we've properly added gui elements before trying to set the to be the responding one, or running callbacks against them
This commit is contained in:
parent
9f3785d893
commit
5fb73edc00
4 changed files with 7 additions and 6 deletions
|
|
@ -2169,7 +2169,7 @@ void GuiCanvas::setFirstResponder( GuiControl* newResponder )
|
||||||
if( oldResponder && ( oldResponder != newResponder ) )
|
if( oldResponder && ( oldResponder != newResponder ) )
|
||||||
oldResponder->onLoseFirstResponder();
|
oldResponder->onLoseFirstResponder();
|
||||||
|
|
||||||
if( newResponder && ( newResponder != oldResponder ) )
|
if( newResponder && ( newResponder != oldResponder ) && newResponder->isProperlyAdded())
|
||||||
newResponder->onGainFirstResponder();
|
newResponder->onGainFirstResponder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2230,10 +2230,10 @@ void GuiControl::setFirstResponder( GuiControl* firstResponder )
|
||||||
|
|
||||||
void GuiControl::setFirstResponder()
|
void GuiControl::setFirstResponder()
|
||||||
{
|
{
|
||||||
if( mAwake && mVisible )
|
if( mAwake && mVisible && isProperlyAdded())
|
||||||
{
|
{
|
||||||
GuiControl *parent = getParent();
|
GuiControl *parent = getParent();
|
||||||
if ( mProfile->mCanKeyFocus == true && parent != NULL )
|
if ( mProfile->mCanKeyFocus == true && parent && parent->isProperlyAdded())
|
||||||
parent->setFirstResponder( this );
|
parent->setFirstResponder( this );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -741,7 +741,7 @@ class GuiControl : public SimGroup
|
||||||
GuiControl *getFirstResponder() { return mFirstResponder; }
|
GuiControl *getFirstResponder() { return mFirstResponder; }
|
||||||
|
|
||||||
/// Occurs when the control gains first-responder status.
|
/// Occurs when the control gains first-responder status.
|
||||||
virtual void onGainFirstResponder();
|
void onGainFirstResponder();
|
||||||
|
|
||||||
/// Occurs when the control loses first-responder status.
|
/// Occurs when the control loses first-responder status.
|
||||||
virtual void onLoseFirstResponder();
|
virtual void onLoseFirstResponder();
|
||||||
|
|
|
||||||
|
|
@ -233,7 +233,7 @@ void GuiInspectorField::setFirstResponder( GuiControl *firstResponder )
|
||||||
{
|
{
|
||||||
Parent::setFirstResponder( firstResponder );
|
Parent::setFirstResponder( firstResponder );
|
||||||
|
|
||||||
if ( firstResponder == this || firstResponder == mEdit )
|
if (( firstResponder == this || firstResponder == mEdit ) && firstResponder->isProperlyAdded())
|
||||||
{
|
{
|
||||||
mInspector->setHighlightField( this );
|
mInspector->setHighlightField( this );
|
||||||
}
|
}
|
||||||
|
|
@ -851,7 +851,8 @@ void GuiInspectorField::setHLEnabled( bool enabled )
|
||||||
edit->setCursorPos(0);
|
edit->setCursorPos(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_executeSelectedCallback();
|
if (isProperlyAdded())
|
||||||
|
_executeSelectedCallback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue