You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Introduce a SubViewportContainer config for drag-and-drop targets
With the drag-and-drop rewrite, `SubViewportContainer` nodes were no longer available as drop-locations. This PR introduces a configuration option, that allows `SubViewportContainer` to be considered as drop-location, but disables the `Control` nodes inside its `SubViewport` children as drop-location.
This commit is contained in:
@@ -246,6 +246,14 @@ bool SubViewportContainer::_is_propagated_in_gui_input(const Ref<InputEvent> &p_
|
||||
return false;
|
||||
}
|
||||
|
||||
void SubViewportContainer::set_consume_drag_and_drop(bool p_enable) {
|
||||
consume_drag_and_drop = p_enable;
|
||||
}
|
||||
|
||||
bool SubViewportContainer::is_consume_drag_and_drop_enabled() {
|
||||
return consume_drag_and_drop;
|
||||
}
|
||||
|
||||
void SubViewportContainer::add_child_notify(Node *p_child) {
|
||||
if (Object::cast_to<SubViewport>(p_child)) {
|
||||
queue_redraw();
|
||||
@@ -286,8 +294,12 @@ void SubViewportContainer::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_stretch_shrink", "amount"), &SubViewportContainer::set_stretch_shrink);
|
||||
ClassDB::bind_method(D_METHOD("get_stretch_shrink"), &SubViewportContainer::get_stretch_shrink);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_consume_drag_and_drop", "amount"), &SubViewportContainer::set_consume_drag_and_drop);
|
||||
ClassDB::bind_method(D_METHOD("is_consume_drag_and_drop_enabled"), &SubViewportContainer::is_consume_drag_and_drop_enabled);
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "stretch"), "set_stretch", "is_stretch_enabled");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "stretch_shrink", PROPERTY_HINT_RANGE, "1,32,1,or_greater"), "set_stretch_shrink", "get_stretch_shrink");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "consume_drag_and_drop"), "set_consume_drag_and_drop", "is_consume_drag_and_drop_enabled");
|
||||
|
||||
GDVIRTUAL_BIND(_propagate_input_event, "event");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user