mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-01-24 10:07:17 +01:00
Removed clips_input() method and _clips_input() virtual method from Control. Made clip_contents to also have an input clipping effect, since I couldn't think any single instance where keeping them separated would be useful.
This fixes LayeredTileMap's editors clipping input while being invisible, and likely other smaller issues.
This commit is contained in:
parent
062ccd439f
commit
105115dbb3
@ -20,13 +20,6 @@
|
||||
<link title="All GUI Demos">https://github.com/Relintai/pandemonium_demo_projects/tree/master/gui</link>
|
||||
</tutorials>
|
||||
<methods>
|
||||
<method name="_clips_input" qualifiers="virtual">
|
||||
<return type="bool" />
|
||||
<description>
|
||||
Virtual method to be implemented by the user. Returns whether [method _gui_input] should not be called for children controls outside this control's rectangle. Input will be clipped to the Rect of this [Control]. Similar to [member rect_clip_content], but doesn't affect visibility.
|
||||
If not overridden, defaults to [code]false[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="_get_minimum_size" qualifiers="virtual">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
@ -52,7 +45,7 @@
|
||||
* control has [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];
|
||||
* control is obstructed by another [Control] on top of it, which doesn't have [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];
|
||||
* control's parent has [member mouse_filter] set to [constant MOUSE_FILTER_STOP] or has accepted the event;
|
||||
* it happens outside the parent's rectangle and the parent has either [member rect_clip_content] or [method _clips_input] enabled.
|
||||
* it happens outside the parent's rectangle and the parent has either [member rect_clip_content] or [method rect_clip_content] enabled.
|
||||
[b]Note:[/b] Event position is relative to the control origin.
|
||||
</description>
|
||||
</method>
|
||||
|
@ -245,10 +245,6 @@ void GraphEdit::disconnect_node(const StringName &p_from, int p_from_port, const
|
||||
}
|
||||
}
|
||||
|
||||
bool GraphEdit::clips_input() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
void GraphEdit::get_connection_list(List<Connection> *r_connections) const {
|
||||
*r_connections = connections;
|
||||
}
|
||||
|
@ -237,7 +237,6 @@ protected:
|
||||
virtual void add_child_notify(Node *p_child);
|
||||
virtual void remove_child_notify(Node *p_child);
|
||||
void _notification(int p_what);
|
||||
virtual bool clips_input() const;
|
||||
|
||||
public:
|
||||
Error connect_node(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port);
|
||||
|
@ -35,10 +35,6 @@
|
||||
#include "scene/main/viewport.h"
|
||||
#include "scroll_bar.h"
|
||||
|
||||
bool ScrollContainer::clips_input() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
Size2 ScrollContainer::get_minimum_size() const {
|
||||
Ref<StyleBox> sb = get_theme_stylebox("bg");
|
||||
Size2 min_size;
|
||||
|
@ -103,8 +103,6 @@ public:
|
||||
VScrollBar *get_v_scrollbar();
|
||||
void ensure_control_visible(Control *p_control);
|
||||
|
||||
virtual bool clips_input() const;
|
||||
|
||||
virtual String get_configuration_warning() const;
|
||||
|
||||
ScrollContainer();
|
||||
|
@ -669,13 +669,6 @@ void Control::_notification(int p_notification) {
|
||||
}
|
||||
}
|
||||
|
||||
bool Control::clips_input() const {
|
||||
if (get_script_instance()) {
|
||||
return get_script_instance()->call(SceneStringNames::get_singleton()->_clips_input);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Control::has_point(const Point2 &p_point) const {
|
||||
if (get_script_instance()) {
|
||||
Variant v = p_point;
|
||||
@ -2900,7 +2893,6 @@ void Control::_bind_methods() {
|
||||
BIND_VMETHOD(MethodInfo(
|
||||
PropertyInfo(Variant::OBJECT, "control", PROPERTY_HINT_RESOURCE_TYPE, "Control"),
|
||||
"_make_custom_tooltip", PropertyInfo(Variant::STRING, "for_text")));
|
||||
BIND_VMETHOD(MethodInfo(Variant::BOOL, "_clips_input"));
|
||||
|
||||
ADD_GROUP("Anchor", "anchor_");
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_left", PROPERTY_HINT_RANGE, "0,1,0.001,or_lesser,or_greater"), "_set_anchor", "get_anchor", MARGIN_LEFT);
|
||||
|
@ -325,7 +325,6 @@ public:
|
||||
virtual Size2 get_minimum_size() const;
|
||||
virtual Size2 get_combined_minimum_size() const;
|
||||
virtual bool has_point(const Point2 &p_point) const;
|
||||
virtual bool clips_input() const;
|
||||
virtual void set_drag_forwarding(Control *p_target);
|
||||
virtual Variant get_drag_data(const Point2 &p_point);
|
||||
virtual bool can_drop_data(const Point2 &p_point, const Variant &p_data) const;
|
||||
|
@ -115,8 +115,6 @@ SceneStringNames::SceneStringNames() {
|
||||
_update_scroll = StaticCString::create("_update_scroll");
|
||||
_update_xform = StaticCString::create("_update_xform");
|
||||
|
||||
_clips_input = StaticCString::create("_clips_input");
|
||||
|
||||
_proxgroup_add = StaticCString::create("_proxgroup_add");
|
||||
_proxgroup_remove = StaticCString::create("_proxgroup_remove");
|
||||
|
||||
|
@ -140,8 +140,6 @@ public:
|
||||
StringName _update_scroll;
|
||||
StringName _update_xform;
|
||||
|
||||
StringName _clips_input;
|
||||
|
||||
StringName _proxgroup_add;
|
||||
StringName _proxgroup_remove;
|
||||
|
||||
|
@ -1718,7 +1718,7 @@ Control *Viewport::_gui_find_control_at_pos(CanvasItem *p_node, const Point2 &p_
|
||||
|
||||
Control *c = Object::cast_to<Control>(p_node);
|
||||
|
||||
if (!c || !c->clips_input() || c->has_point(matrix.affine_inverse().xform(p_global))) {
|
||||
if (!c || !c->is_clipping_contents() || c->has_point(matrix.affine_inverse().xform(p_global))) {
|
||||
for (int i = p_node->get_child_count() - 1; i >= 0; i--) {
|
||||
if (p_node == gui.tooltip_popup) {
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user