diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2016-01-22 00:21:44 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2016-01-22 00:22:27 +0100 |
commit | 1120b6ae0dd997b67e178b903fc32c1a169f1448 (patch) | |
tree | 18cbabbbe40939326dcda309261d9dcba5b11248 /scene/gui | |
parent | 14c1d7fef00dbd653dcc21102679575955a694dc (diff) |
Make custom_bg fit the whole "selected" area in ItemLists
Closes #3096
Diffstat (limited to 'scene/gui')
-rw-r--r-- | scene/gui/item_list.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index f035cb7722..2d2cabfc01 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -826,22 +826,25 @@ void ItemList::_notification(int p_what) { if (current_columns==1) { rcache.size.width = width-rcache.pos.x; } - if (items[i].custom_bg.a>0.001) { - Rect2 r=rcache; - r.pos+=base_ofs; - draw_rect(r,items[i].custom_bg); - } - if (items[i].selected) { - Rect2 r=rcache; - r.pos+=base_ofs; - r.pos.x-=sbsel->get_margin(MARGIN_LEFT); - r.size.x+=sbsel->get_margin(MARGIN_LEFT)+sbsel->get_margin(MARGIN_RIGHT); - r.pos.y-=sbsel->get_margin(MARGIN_TOP); - r.size.y+=sbsel->get_margin(MARGIN_TOP)+sbsel->get_margin(MARGIN_BOTTOM); + Rect2 r=rcache; + r.pos+=base_ofs; - draw_style_box(sbsel,r); + // Use stylebox to dimension potential bg color, even if not selected + r.pos.x-=sbsel->get_margin(MARGIN_LEFT); + r.size.x+=sbsel->get_margin(MARGIN_LEFT)+sbsel->get_margin(MARGIN_RIGHT); + r.pos.y-=sbsel->get_margin(MARGIN_TOP); + r.size.y+=sbsel->get_margin(MARGIN_TOP)+sbsel->get_margin(MARGIN_BOTTOM); + if (items[i].selected) { + draw_style_box(sbsel,r); + } + if (items[i].custom_bg.a>0.001) { + r.pos.x+=2; + r.size.x-=4; + r.pos.y+=2; + r.size.y-=4; + draw_rect(r,items[i].custom_bg); } |