1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-17 14:11:06 +00:00

SpinBoxes calculate correctly their width before first redraw.

(cherry picked from commit fe1ca3c6e6)
This commit is contained in:
Ovnuniarchos
2018-02-05 22:42:30 +01:00
committed by Hein-Pieter van Braam
parent e6252bda5e
commit eda94419df
2 changed files with 13 additions and 5 deletions

View File

@@ -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);
}
}