summaryrefslogtreecommitdiff
path: root/scene
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2019-06-28 18:38:57 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2019-06-30 19:58:40 +0200
commita0cc62f0003ea9204c44fdbb32ea12b723b150e7 (patch)
treee31fe8853befa7abd2ad02195587bd19170a3022 /scene
parent6e03236574467d6a0c3aca1b0375da59423b0083 (diff)
Add a configuration warning when using Ignore mouse filter with tooltip
This closes #30144.
Diffstat (limited to 'scene')
-rw-r--r--scene/gui/control.cpp16
-rw-r--r--scene/gui/control.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 6e0e26312f..eccd42cb9f 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -2249,6 +2249,7 @@ Ref<Theme> Control::get_theme() const {
void Control::set_tooltip(const String &p_tooltip) {
data.tooltip = p_tooltip;
+ update_configuration_warning();
}
String Control::get_tooltip(const Point2 &p_pos) const {
@@ -2540,6 +2541,7 @@ void Control::set_mouse_filter(MouseFilter p_filter) {
ERR_FAIL_INDEX(p_filter, 3);
data.mouse_filter = p_filter;
+ update_configuration_warning();
}
Control::MouseFilter Control::get_mouse_filter() const {
@@ -2703,6 +2705,20 @@ void Control::get_argument_options(const StringName &p_function, int p_idx, List
}
}
}
+
+String Control::get_configuration_warning() const {
+ String warning = CanvasItem::get_configuration_warning();
+
+ if (data.mouse_filter == MOUSE_FILTER_IGNORE && data.tooltip != "") {
+ if (warning != String()) {
+ warning += "\n";
+ }
+ warning += TTR("The Hint Tooltip won't be displayed as the control's Mouse Filter is set to \"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\".");
+ }
+
+ return warning;
+}
+
void Control::set_clip_contents(bool p_clip) {
data.clip_contents = p_clip;
diff --git a/scene/gui/control.h b/scene/gui/control.h
index 2489a5eda4..1a59a6d2e4 100644
--- a/scene/gui/control.h
+++ b/scene/gui/control.h
@@ -487,6 +487,7 @@ public:
bool is_visibility_clip_disabled() const;
virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const;
+ virtual String get_configuration_warning() const;
Control();
~Control();