Ensure one shot signals are not disconnected while edited, closes #7776

(cherry picked from commit ac52eb444f)
This commit is contained in:
Juan Linietsky 2018-07-29 21:05:31 -03:00 committed by Rémi Verschelde
parent 10a71ab4d6
commit a93e28291f
1 changed files with 9 additions and 1 deletions

View File

@ -1205,7 +1205,15 @@ Error Object::emit_signal(const StringName &p_name, const Variant **p_args, int
}
}
if (c.flags & CONNECT_ONESHOT) {
bool disconnect = c.flags & CONNECT_ONESHOT;
#ifdef TOOLS_ENABLED
if (disconnect && (c.flags & CONNECT_PERSIST) && Engine::get_singleton()->is_editor_hint()) {
//this signal was connected from the editor, and is being edited. just dont disconnect for now
disconnect = false;
}
#endif
if (disconnect) {
_ObjectSignalDisconnectData dd;
dd.signal = p_name;
dd.target = target;