aboutsummaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorRémi Verschelde2018-02-13 15:46:39 +0100
committerGitHub2018-02-13 15:46:39 +0100
commit8d75b274051d5e922e04bc96927a7ed9a0e6ffb2 (patch)
tree324f3aea6d646b8bd6c2a91ea873ef8f5ddcf7bb /scene/gui
parenteefb58a892dfd5f334cbc86522a1cf0763af77d3 (diff)
parentfe1ca3c6e649ac599029b71f4508f840fa91f208 (diff)
downloadgodot-8d75b274051d5e922e04bc96927a7ed9a0e6ffb2.tar.gz
godot-8d75b274051d5e922e04bc96927a7ed9a0e6ffb2.tar.zst
godot-8d75b274051d5e922e04bc96927a7ed9a0e6ffb2.zip
Merge pull request #16432 from Ovnuniarchos/master
SpinBoxes calculate correctly their width before first redraw.
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/spin_box.cpp16
-rw-r--r--scene/gui/spin_box.h2
2 files changed, 13 insertions, 5 deletions
diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp
index 3c5d524d8..145981d49 100644
--- a/scene/gui/spin_box.cpp
+++ b/scene/gui/spin_box.cpp
@@ -185,17 +185,22 @@ void SpinBox::_line_edit_focus_exit() {
_text_entered(line_edit->get_text());
}
+inline void SpinBox::_adjust_width_for_icon(const Ref<Texture> icon) {
+
+ int w = icon->get_width();
+ if (w != last_w) {
+ line_edit->set_margin(MARGIN_RIGHT, -w);
+ last_w = w;
+ }
+}
+
void SpinBox::_notification(int p_what) {
if (p_what == NOTIFICATION_DRAW) {
Ref<Texture> updown = get_icon("updown");
- int w = updown->get_width();
- if (w != last_w) {
- line_edit->set_margin(MARGIN_RIGHT, -w);
- last_w = w;
- }
+ _adjust_width_for_icon(updown);
RID ci = get_canvas_item();
Size2i size = get_size();
@@ -207,6 +212,7 @@ void SpinBox::_notification(int p_what) {
//_value_changed(0);
} else if (p_what == NOTIFICATION_ENTER_TREE) {
+ _adjust_width_for_icon(get_icon("updown"));
_value_changed(0);
}
}
diff --git a/scene/gui/spin_box.h b/scene/gui/spin_box.h
index b8565ec08..8863f44be 100644
--- a/scene/gui/spin_box.h
+++ b/scene/gui/spin_box.h
@@ -62,6 +62,8 @@ class SpinBox : public Range {
void _line_edit_focus_exit();
+ inline void _adjust_width_for_icon(const Ref<Texture> icon);
+
protected:
void _gui_input(const Ref<InputEvent> &p_event);