summaryrefslogtreecommitdiff
path: root/scene/gui/control.cpp
diff options
context:
space:
mode:
authorEric M <itsjusteza@gmail.com>2021-06-21 10:50:13 +1000
committerEric M <itsjusteza@gmail.com>2021-10-01 18:03:51 +1000
commit4baddc112647edf658692a484a481666a77e41b2 (patch)
treedace7db17614affcc65592891678ccfc0b82fd60 /scene/gui/control.cpp
parent8be97e3b51f5adbee0f9f5d3193da53680a44695 (diff)
Allow non-control Nodes to handle drag forwarding (e.g. Windows)
Diffstat (limited to 'scene/gui/control.cpp')
-rw-r--r--scene/gui/control.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 81411d5844..ea82a0d131 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -742,7 +742,7 @@ bool Control::has_point(const Point2 &p_point) const {
return Rect2(Point2(), get_size()).has_point(p_point);
}
-void Control::set_drag_forwarding(Control *p_target) {
+void Control::set_drag_forwarding(Node *p_target) {
if (p_target) {
data.drag_owner = p_target->get_instance_id();
} else {
@@ -754,8 +754,7 @@ Variant Control::get_drag_data(const Point2 &p_point) {
if (data.drag_owner.is_valid()) {
Object *obj = ObjectDB::get_instance(data.drag_owner);
if (obj) {
- Control *c = Object::cast_to<Control>(obj);
- return c->call("_get_drag_data_fw", p_point, this);
+ return obj->call("_get_drag_data_fw", p_point, this);
}
}
@@ -771,8 +770,7 @@ bool Control::can_drop_data(const Point2 &p_point, const Variant &p_data) const
if (data.drag_owner.is_valid()) {
Object *obj = ObjectDB::get_instance(data.drag_owner);
if (obj) {
- Control *c = Object::cast_to<Control>(obj);
- return c->call("_can_drop_data_fw", p_point, p_data, this);
+ return obj->call("_can_drop_data_fw", p_point, p_data, this);
}
}
@@ -787,8 +785,7 @@ void Control::drop_data(const Point2 &p_point, const Variant &p_data) {
if (data.drag_owner.is_valid()) {
Object *obj = ObjectDB::get_instance(data.drag_owner);
if (obj) {
- Control *c = Object::cast_to<Control>(obj);
- c->call("_drop_data_fw", p_point, p_data, this);
+ obj->call("_drop_data_fw", p_point, p_data, this);
return;
}
}