ScriptOSDropTarget::ScriptOSDropTarget(MonoObject* instance, ScriptEditorWindow* parent) :ScriptObject(instance), mParent(parent), mDropTarget(nullptr), mIsDestroyed(false) { EditorWidgetBase* parentWidget = getParentWidget(); if (parentWidget != nullptr) { mWidgetParentChangedConn = parentWidget->onParentChanged.connect(std::bind(&ScriptOSDropTarget::widgetParentChanged, this, _1)); mWidgetResizedConn = parentWidget->onResized.connect(std::bind(&ScriptOSDropTarget::widgetResized, this, _1, _2)); mWidgetMovedConn = parentWidget->onMoved.connect(std::bind(&ScriptOSDropTarget::widgetMoved, this, _1, _2)); EditorWindowBase* parentWindow = parentWidget->getParentWindow(); if (parentWindow != nullptr) setDropTarget(parentWindow->getRenderWindow(), 0, 0, 0, 0); mParentArea = parentWidget->getBounds(); } }