@@ -295,15 +295,19 @@ void ScrollBar::_notification(int p_what) {
295295 Rect2 grabber_rect;
296296
297297 if (orientation == HORIZONTAL) {
298+ int padding_top = MAX (theme_cache.padding_top , 0 );
299+ int padding_bottom = MAX (theme_cache.padding_bottom , 0 );
298300 grabber_rect.size .width = get_grabber_size ();
299- grabber_rect.size .height = get_size ().height ;
300- grabber_rect.position .y = 0 ;
301+ grabber_rect.size .height = get_size ().height - padding_top - padding_bottom ;
302+ grabber_rect.position .y = padding_top ;
301303 grabber_rect.position .x = get_grabber_offset () + decr->get_width () + theme_cache.scroll_style ->get_margin (SIDE_LEFT);
302304 } else {
303- grabber_rect.size .width = get_size ().width ;
305+ int padding_left = MAX (theme_cache.padding_left , 0 );
306+ int padding_right = MAX (theme_cache.padding_right , 0 );
307+ grabber_rect.size .width = get_size ().width - padding_left - padding_right;
304308 grabber_rect.size .height = get_grabber_size ();
305309 grabber_rect.position .y = get_grabber_offset () + decr->get_height () + theme_cache.scroll_style ->get_margin (SIDE_TOP);
306- grabber_rect.position .x = 0 ;
310+ grabber_rect.position .x = padding_left ;
307311 }
308312
309313 grabber->draw (ci, grabber_rect);
@@ -488,15 +492,21 @@ Size2 ScrollBar::get_minimum_size() const {
488492 Size2 minsize;
489493
490494 if (orientation == VERTICAL) {
495+ int padding_left = MAX (theme_cache.padding_left , 0 );
496+ int padding_right = MAX (theme_cache.padding_right , 0 );
491497 minsize.width = MAX (incr->get_size ().width , bg->get_minimum_size ().width );
498+ minsize.width += padding_left + padding_right;
492499 minsize.height += incr->get_size ().height ;
493500 minsize.height += decr->get_size ().height ;
494501 minsize.height += bg->get_minimum_size ().height ;
495502 minsize.height += get_grabber_min_size ();
496503 }
497504
498505 if (orientation == HORIZONTAL) {
506+ int padding_top = MAX (theme_cache.padding_top , 0 );
507+ int padding_bottom = MAX (theme_cache.padding_bottom , 0 );
499508 minsize.height = MAX (incr->get_size ().height , bg->get_minimum_size ().height );
509+ minsize.height += padding_top + padding_bottom;
500510 minsize.width += incr->get_size ().width ;
501511 minsize.width += decr->get_size ().width ;
502512 minsize.width += bg->get_minimum_size ().width ;
@@ -669,3 +679,13 @@ ScrollBar::ScrollBar(Orientation p_orientation) {
669679
670680ScrollBar::~ScrollBar () {
671681}
682+
683+ void VScrollBar::_bind_methods () {
684+ BIND_THEME_ITEM (Theme::DATA_TYPE_CONSTANT, VScrollBar, padding_left);
685+ BIND_THEME_ITEM (Theme::DATA_TYPE_CONSTANT, VScrollBar, padding_right);
686+ }
687+
688+ void HScrollBar::_bind_methods () {
689+ BIND_THEME_ITEM (Theme::DATA_TYPE_CONSTANT, HScrollBar, padding_top);
690+ BIND_THEME_ITEM (Theme::DATA_TYPE_CONSTANT, HScrollBar, padding_bottom);
691+ }
0 commit comments