summaryrefslogtreecommitdiff
path: root/scene/gui/item_list.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui/item_list.cpp')
-rw-r--r--scene/gui/item_list.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp
index 7d112d1492..105d919338 100644
--- a/scene/gui/item_list.cpp
+++ b/scene/gui/item_list.cpp
@@ -336,6 +336,7 @@ void ItemList::clear(){
current=-1;
ensure_selected_visible=false;
update();
+ shape_changed=true;
defer_select_single=-1;
}
@@ -461,7 +462,6 @@ void ItemList::_input_event(const InputEvent& p_event) {
pos.y+=scroll_bar->get_val();
int closest = -1;
- int closest_dist=0x7FFFFFFF;
for(int i=0;i<items.size();i++) {
@@ -474,12 +474,6 @@ void ItemList::_input_event(const InputEvent& p_event) {
closest=i;
break;
}
-
- float dist = rc.distance_to(pos);
- if (dist<closest_dist) {
- closest=i;
- closest_dist=dist;
- }
}
if (closest!=-1) {
@@ -546,6 +540,11 @@ void ItemList::_input_event(const InputEvent& p_event) {
return;
+ } else {
+ Vector<int> sItems = get_selected_items();
+ for(int i = 0; i < sItems.size(); i++) {
+ unselect(sItems[i]);
+ }
}
}
if (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==BUTTON_WHEEL_UP && p_event.mouse_button.pressed) {
@@ -823,7 +822,7 @@ void ItemList::_notification(int p_what) {
}
if (shape_changed) {
-
+
float max_column_width = 0;
//1- compute item minimum sizes
@@ -914,11 +913,11 @@ void ItemList::_notification(int p_what) {
if (i<items.size()-1)
separators.push_back(ofs.y+max_h+vseparation/2);
-
+
for(int j=i;j>=0 && col>0;j--, col--) {
items[j].rect_cache.size.y = max_h;
}
-
+
ofs.x=0;
ofs.y+=max_h+vseparation;
col=0;
@@ -1211,8 +1210,11 @@ String ItemList::get_tooltip(const Point2& p_pos) const {
}
void ItemList::sort_items_by_text() {
+
items.sort();
update();
+ shape_changed=true;
+
if (select_mode==SELECT_SINGLE) {
for(int i=0;i<items.size();i++) {
if (items[i].selected) {
@@ -1304,7 +1306,7 @@ void ItemList::_bind_methods(){
ObjectTypeDB::bind_method(_MD("remove_item","idx"),&ItemList::remove_item);
ObjectTypeDB::bind_method(_MD("clear"),&ItemList::clear);
- ObjectTypeDB::bind_method(_MD("sort_items_by_text"),&ItemList::clear);
+ ObjectTypeDB::bind_method(_MD("sort_items_by_text"),&ItemList::sort_items_by_text);
ObjectTypeDB::bind_method(_MD("set_fixed_column_width","width"),&ItemList::set_fixed_column_width);
ObjectTypeDB::bind_method(_MD("get_fixed_column_width"),&ItemList::get_fixed_column_width);
@@ -1383,4 +1385,3 @@ ItemList::ItemList() {
ItemList::~ItemList() {
}
-