Skip to content

Commit

Permalink
Merge pull request #79455 from timothyqiu/button-clip-internal
Browse files Browse the repository at this point in the history
Fix Button clipping when internal margins exist
  • Loading branch information
YuriSizov committed Jul 14, 2023
2 parents 16565fb + 71430cd commit 7b0f8d7
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions scene/gui/button.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -327,18 +327,19 @@ void Button::_notification(int p_what) {
if (align_rtl_checked == HORIZONTAL_ALIGNMENT_CENTER && icon_align_rtl_checked == HORIZONTAL_ALIGNMENT_CENTER) {
icon_ofs.x = 0.0;
}
int text_clip = size.width - style->get_minimum_size().width - icon_ofs.width;
text_buf->set_width((clip_text || overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) ? text_clip : -1);

int text_width = MAX(1, (clip_text || overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) ? MIN(text_clip, text_buf->get_size().x) : text_buf->get_size().x);

int text_clip = size.width - style->get_minimum_size().width - icon_ofs.width;
if (_internal_margin[SIDE_LEFT] > 0) {
text_clip -= _internal_margin[SIDE_LEFT] + theme_cache.h_separation;
}
if (_internal_margin[SIDE_RIGHT] > 0) {
text_clip -= _internal_margin[SIDE_RIGHT] + theme_cache.h_separation;
}

text_buf->set_width((clip_text || overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) ? text_clip : -1);

int text_width = MAX(1, (clip_text || overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) ? MIN(text_clip, text_buf->get_size().x) : text_buf->get_size().x);

Point2 text_ofs = (size - style->get_minimum_size() - icon_ofs - text_buf->get_size() - Point2(_internal_margin[SIDE_RIGHT] - _internal_margin[SIDE_LEFT], 0)) / 2.0;

if (vertical_icon_alignment == VERTICAL_ALIGNMENT_TOP) {
Expand Down

0 comments on commit 7b0f8d7

Please sign in to comment.