]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/list.cpp
Make autosize_special const and add a const autosize overload
[libs/gltk.git] / source / list.cpp
index b712574d3992f9a0a5c3406837206e6ed1204542..461d5e425c3076426f8ad51029ee971825cf396f 100644 (file)
@@ -55,7 +55,7 @@ List::~List()
                delete data;
 }
 
-void List::autosize_special(const Part &part, Geometry &ageom)
+void List::autosize_special(const Part &part, Geometry &ageom) const
 {
        if(part.get_name()=="items")
        {
@@ -141,11 +141,14 @@ void List::set_selected_index(int i)
        if(i>=static_cast<int>(data->size()))
                throw out_of_range("List::set_selected_index");
 
+       if(i==sel_index)
+               return;
+
        if(sel_index>=0)
                items[sel_index]->set_active(false);
        if(i<0)
                sel_index = -1;
-       else if(i!=sel_index)
+       else
        {
                sel_index = i;
                items[sel_index]->set_active(true);
@@ -341,7 +344,7 @@ void List::DataObserver::refresh_item(unsigned i)
 }
 
 
-void List::Item::autosize_special(const Part &part, Geometry &ageom)
+void List::Item::autosize_special(const Part &part, Geometry &ageom) const
 {
        if(part.get_name()=="children")
        {