X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flist.cpp;h=461d5e425c3076426f8ad51029ee971825cf396f;hb=707b59d45ae50b69c94918f8f74313283b304597;hp=b712574d3992f9a0a5c3406837206e6ed1204542;hpb=3ed9c4e3e26dbdce188c32d2dc63c3f921f053e3;p=libs%2Fgltk.git diff --git a/source/list.cpp b/source/list.cpp index b712574..461d5e4 100644 --- a/source/list.cpp +++ b/source/list.cpp @@ -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(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") {