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

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;