void eListbox::setContent(iListboxContent *content)
{
- int oldsel = m_selected;
m_content = content;
if (content)
m_content->setListbox(this);
entryReset();
- /* if oldsel != m_selected, selectionChanged was already
- emitted in entryReset. we want it in any case, so otherwise,
- emit it now. */
- if (oldsel == m_selected)
- /* emit */ selectionChanged();
}
bool eListbox::atBegin()
if ((pages*m_items_per_page) < entries)
++pages;
int start=(m_top*100)/(pages*m_items_per_page);
- int vis=(m_items_per_page*100)/(pages*m_items_per_page);
+ int vis=(m_items_per_page*100+pages*m_items_per_page-1)/(pages*m_items_per_page);
if (vis < 3)
vis=3;
m_scrollbar->setStartEnd(start,start+vis);
if (!m_content)
return eWidget::event(event, data, data2);
- assert(m_content);
+ ASSERT(m_content);
getStyle(style);
{
m_content_changed = true;
m_prev_scrollbar_page = -1;
+ int oldsel;
if (selectionHome)
{
else
m_selected = 0;
m_content->cursorSet(m_selected);
- selectionChanged();
}
+ oldsel = m_selected;
moveSelection(justCheck);
+ /* if oldsel != m_selected, selectionChanged was already
+ emitted in moveSelection. we want it in any case, so otherwise,
+ emit it now. */
+ if (oldsel == m_selected)
+ /* emit */ selectionChanged();
invalidate();
}