emit tree node selected only after mouse_down and checked
this avoid inconsistent drawing or too much redrawing
This commit is contained in:
parent
840d6b775d
commit
927c625a7d
@ -1863,7 +1863,7 @@ namespace nana
|
|||||||
}
|
}
|
||||||
else if (node_state.selected != node_state.pressed_node)
|
else if (node_state.selected != node_state.pressed_node)
|
||||||
{
|
{
|
||||||
impl_->set_selected(node_state.pressed_node);
|
//impl_->set_selected(node_state.pressed_node); // todo: emit selected after checked
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
@ -1886,27 +1886,23 @@ namespace nana
|
|||||||
if(!nl.node())
|
if(!nl.node())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (pressed_node == nl.node())
|
if (pressed_node != nl.node())
|
||||||
{
|
return; //Do not refresh
|
||||||
if ((impl_->node_state.selected != nl.node()) && nl.item_body())
|
|
||||||
{
|
|
||||||
impl_->set_selected(nl.node());
|
|
||||||
if (impl_->make_adjust(impl_->node_state.selected, 1))
|
|
||||||
impl_->adjust.scroll_timestamp = 1;
|
|
||||||
}
|
|
||||||
else if (nl.what() == component::crook)
|
|
||||||
{
|
|
||||||
checkstate cs = checkstate::unchecked;
|
|
||||||
if (checkstate::unchecked == nl.node()->value.second.checked)
|
|
||||||
cs = checkstate::checked;
|
|
||||||
|
|
||||||
check(nl.node(), cs);
|
if (nl.what() == component::crook)
|
||||||
}
|
{
|
||||||
else
|
checkstate cs = checkstate::unchecked;
|
||||||
return; //Do not refresh
|
if (checkstate::unchecked == nl.node()->value.second.checked)
|
||||||
|
cs = checkstate::checked;
|
||||||
|
|
||||||
|
check(nl.node(), cs);
|
||||||
|
}
|
||||||
|
if ((impl_->node_state.selected != nl.node()) && (nl.item_body() || nl.what() == component::crook))
|
||||||
|
{
|
||||||
|
impl_->set_selected(nl.node());
|
||||||
|
if (impl_->make_adjust(impl_->node_state.selected, 1))
|
||||||
|
impl_->adjust.scroll_timestamp = 1;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return; //Don't refresh
|
|
||||||
|
|
||||||
impl_->draw(true);
|
impl_->draw(true);
|
||||||
API::dev::lazy_refresh();
|
API::dev::lazy_refresh();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user