diff options
Diffstat (limited to 'scene/gui')
| -rw-r--r-- | scene/gui/base_button.cpp | 9 | ||||
| -rw-r--r-- | scene/gui/label.cpp | 8 | ||||
| -rw-r--r-- | scene/gui/line_edit.cpp | 6 |
3 files changed, 15 insertions, 8 deletions
diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp index 2200cac5da..bc498f47bc 100644 --- a/scene/gui/base_button.cpp +++ b/scene/gui/base_button.cpp @@ -418,8 +418,13 @@ void BaseButton::_unhandled_input(InputEvent p_event) { String BaseButton::get_tooltip(const Point2& p_pos) const { String tooltip=Control::get_tooltip(p_pos); - if (shortcut.is_valid() && shortcut->is_valid()) - tooltip+=" ("+shortcut->get_as_text()+")"; + if (shortcut.is_valid() && shortcut->is_valid()) { + if (tooltip.find("$sc")!=-1) { + tooltip=tooltip.replace_first("$sc","("+shortcut->get_as_text()+")"); + } else { + tooltip+=" ("+shortcut->get_as_text()+")"; + } + } return tooltip; } diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index 09c6a77b42..2d4438c48c 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -92,7 +92,9 @@ void Label::_notification(int p_what) { VisualServer::get_singleton()->canvas_item_set_distance_field_mode(get_canvas_item(),font.is_valid() && font->is_distance_field_hint()); int font_h = font->get_height()+line_spacing; - int lines_visible = size.y/font_h; + + int lines_visible = (size.y+line_spacing)/font_h; + int space_w=font->get_char_size(' ').width; int chars_total=0; @@ -488,9 +490,9 @@ void Label::regenerate_word_cache() { if (!autowrap) { minsize.width=width; if (max_lines_visible > 0 && line_count > max_lines_visible) { - minsize.height=(font->get_height()+line_spacing)*max_lines_visible; + minsize.height=(font->get_height() * max_lines_visible) + (line_spacing * (max_lines_visible - 1)); } else { - minsize.height=(font->get_height()+line_spacing)*line_count; + minsize.height=(font->get_height() * line_count)+(line_spacing * (line_count - 1)); } } diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 44cc798447..2a4e82a8e7 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -454,7 +454,7 @@ void LineEdit::_notification(int p_what) { } break; } - int ofs_max=width-style->get_minimum_size().width+x_ofs; + int ofs_max=width-style->get_minimum_size().width; int char_ofs=window_pos; int y_area=height-style->get_minimum_size().height; @@ -799,8 +799,8 @@ Size2 LineEdit::get_minimum_size() const { Ref<Font> font=get_font("font"); Size2 min=style->get_minimum_size(); - min+=font->get_string_size(this->text); - + min.height+=font->get_height(); + min.width+=get_constant("minimum_spaces")*font->get_char_size(' ').x; return min; } |