mirror of https://github.com/aseprite/aseprite.git
Avoid continuous redrawing events when moving mouse on Edit > Preferences listbox of sections
This commit is contained in:
parent
ca252f9f02
commit
a0bea17bc0
|
|
@ -91,6 +91,8 @@ Widget* ListBox::getChildByIndex(int index)
|
||||||
|
|
||||||
void ListBox::selectChild(Widget* item, Message* msg)
|
void ListBox::selectChild(Widget* item, Message* msg)
|
||||||
{
|
{
|
||||||
|
bool didChange = false;
|
||||||
|
|
||||||
int itemIndex = getChildIndex(item);
|
int itemIndex = getChildIndex(item);
|
||||||
m_lastSelectedIndex = itemIndex;
|
m_lastSelectedIndex = itemIndex;
|
||||||
|
|
||||||
|
|
@ -107,7 +109,10 @@ void ListBox::selectChild(Widget* item, Message* msg)
|
||||||
bool state = child->isSelected();
|
bool state = child->isSelected();
|
||||||
if (msg && !msg->ctrlPressed() && !msg->cmdPressed())
|
if (msg && !msg->ctrlPressed() && !msg->cmdPressed())
|
||||||
state = false;
|
state = false;
|
||||||
m_states[i] = state;
|
if (m_states[i] != state) {
|
||||||
|
didChange = true;
|
||||||
|
m_states[i] = state;
|
||||||
|
}
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -130,8 +135,10 @@ void ListBox::selectChild(Widget* item, Message* msg)
|
||||||
newState = (child == item);
|
newState = (child == item);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (child->isSelected() != newState)
|
if (child->isSelected() != newState) {
|
||||||
|
didChange = true;
|
||||||
child->setSelected(newState);
|
child->setSelected(newState);
|
||||||
|
}
|
||||||
|
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
@ -139,7 +146,8 @@ void ListBox::selectChild(Widget* item, Message* msg)
|
||||||
if (item)
|
if (item)
|
||||||
makeChildVisible(item);
|
makeChildVisible(item);
|
||||||
|
|
||||||
onChange();
|
if (didChange)
|
||||||
|
onChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ListBox::selectIndex(int index, Message* msg)
|
void ListBox::selectIndex(int index, Message* msg)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue