summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2016-01-22 00:21:44 +0100
committerRémi Verschelde <rverschelde@gmail.com>2016-01-22 00:22:27 +0100
commit1120b6ae0dd997b67e178b903fc32c1a169f1448 (patch)
tree18cbabbbe40939326dcda309261d9dcba5b11248 /scene/gui
parent14c1d7fef00dbd653dcc21102679575955a694dc (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.cpp29
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);
}