Skip to content

Commit 05e93a6

Browse files
committed
Merge pull request godotengine#99691 from Sauermann/fix-consume-mouse-over
Rename `SubViewportContainer` option `consume_drag_and_drop` to `mouse_target`
2 parents e4ee8a3 + 0036479 commit 05e93a6

File tree

4 files changed

+17
-16
lines changed

4 files changed

+17
-16
lines changed

doc/classes/SubViewportContainer.xml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@
2020
</method>
2121
</methods>
2222
<members>
23-
<member name="consume_drag_and_drop" type="bool" setter="set_consume_drag_and_drop" getter="is_consume_drag_and_drop_enabled" default="false">
24-
If [code]false[/code], the [SubViewportContainer] is not available as a drop target in drag-and-drop operations, and instead the [Control] nodes inside its [Viewport] children are potential drop targets.
25-
If [code]true[/code], the [SubViewportContainer] itself will be considered as a drop target in drag-and-drop operations, preventing the [Control] nodes inside its [Viewport] children from becoming drop targets.
26-
</member>
2723
<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" overrides="Control" enum="Control.FocusMode" default="1" />
24+
<member name="mouse_target" type="bool" setter="set_mouse_target" getter="is_mouse_target_enabled" default="false">
25+
Configure, if either the [SubViewportContainer] or alternatively the [Control] nodes of its [SubViewport] children should be available as targets of mouse-related functionalities, like identifying the drop target in drag-and-drop operations or cursor shape of hovered [Control] node.
26+
If [code]false[/code], the [Control] nodes inside its [SubViewport] children are considered as targets.
27+
If [code]true[/code], the [SubViewportContainer] itself will be considered as a target.
28+
</member>
2829
<member name="stretch" type="bool" setter="set_stretch" getter="is_stretch_enabled" default="false">
2930
If [code]true[/code], the sub-viewport will be automatically resized to the control's size.
3031
[b]Note:[/b] If [code]true[/code], this will prohibit changing [member SubViewport.size] of its children manually.

scene/gui/subviewport_container.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -246,12 +246,12 @@ bool SubViewportContainer::_is_propagated_in_gui_input(const Ref<InputEvent> &p_
246246
return false;
247247
}
248248

249-
void SubViewportContainer::set_consume_drag_and_drop(bool p_enable) {
250-
consume_drag_and_drop = p_enable;
249+
void SubViewportContainer::set_mouse_target(bool p_enable) {
250+
mouse_target = p_enable;
251251
}
252252

253-
bool SubViewportContainer::is_consume_drag_and_drop_enabled() {
254-
return consume_drag_and_drop;
253+
bool SubViewportContainer::is_mouse_target_enabled() {
254+
return mouse_target;
255255
}
256256

257257
void SubViewportContainer::add_child_notify(Node *p_child) {
@@ -294,12 +294,12 @@ void SubViewportContainer::_bind_methods() {
294294
ClassDB::bind_method(D_METHOD("set_stretch_shrink", "amount"), &SubViewportContainer::set_stretch_shrink);
295295
ClassDB::bind_method(D_METHOD("get_stretch_shrink"), &SubViewportContainer::get_stretch_shrink);
296296

297-
ClassDB::bind_method(D_METHOD("set_consume_drag_and_drop", "amount"), &SubViewportContainer::set_consume_drag_and_drop);
298-
ClassDB::bind_method(D_METHOD("is_consume_drag_and_drop_enabled"), &SubViewportContainer::is_consume_drag_and_drop_enabled);
297+
ClassDB::bind_method(D_METHOD("set_mouse_target", "amount"), &SubViewportContainer::set_mouse_target);
298+
ClassDB::bind_method(D_METHOD("is_mouse_target_enabled"), &SubViewportContainer::is_mouse_target_enabled);
299299

300300
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "stretch"), "set_stretch", "is_stretch_enabled");
301301
ADD_PROPERTY(PropertyInfo(Variant::INT, "stretch_shrink", PROPERTY_HINT_RANGE, "1,32,1,or_greater"), "set_stretch_shrink", "get_stretch_shrink");
302-
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "consume_drag_and_drop"), "set_consume_drag_and_drop", "is_consume_drag_and_drop_enabled");
302+
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "mouse_target"), "set_mouse_target", "is_mouse_target_enabled");
303303

304304
GDVIRTUAL_BIND(_propagate_input_event, "event");
305305
}

scene/gui/subviewport_container.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class SubViewportContainer : public Container {
3838

3939
bool stretch = false;
4040
int shrink = 1;
41-
bool consume_drag_and_drop = false;
41+
bool mouse_target = false;
4242

4343
void _notify_viewports(int p_notification);
4444
bool _is_propagated_in_gui_input(const Ref<InputEvent> &p_event);
@@ -65,8 +65,8 @@ class SubViewportContainer : public Container {
6565
int get_stretch_shrink() const;
6666
void recalc_force_viewport_sizes();
6767

68-
void set_consume_drag_and_drop(bool p_enable);
69-
bool is_consume_drag_and_drop_enabled();
68+
void set_mouse_target(bool p_enable);
69+
bool is_mouse_target_enabled();
7070

7171
virtual Size2 get_minimum_size() const override;
7272

scene/main/viewport.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3067,8 +3067,8 @@ void Viewport::_update_mouse_over(Vector2 p_pos) {
30673067
}
30683068

30693069
Viewport *section_root = get_section_root_viewport();
3070-
if (section_root && c->is_consume_drag_and_drop_enabled()) {
3071-
// Evaluating `consume_drag_and_drop` and adjusting target_control needs to happen
3070+
if (section_root && c->is_mouse_target_enabled()) {
3071+
// Evaluating `mouse_target` and adjusting target_control needs to happen
30723072
// after `_update_mouse_over` in the SubViewports, because otherwise physics picking
30733073
// would not work inside SubViewports.
30743074
section_root->gui.target_control = over;

0 commit comments

Comments
 (0)