fix text_editor content calculation

This commit is contained in:
Jinhao
2017-04-30 16:14:01 +08:00
parent 32792794ed
commit f56358a397

View File

@@ -2118,7 +2118,7 @@ namespace nana{ namespace widgets
impl_->capacities.behavior->adjust_caret_into_screen(); impl_->capacities.behavior->adjust_caret_into_screen();
reset_caret(); reset_caret();
impl_->try_refresh = sync_graph::refresh; impl_->try_refresh = sync_graph::refresh;
_m_reset_content_size(); _m_reset_content_size(true);
points_.xpos = points_.caret.x; points_.xpos = points_.caret.x;
} }
} }
@@ -3012,15 +3012,9 @@ namespace nana{ namespace widgets
{ {
//detect if vertical scrollbar is required //detect if vertical scrollbar is required
auto const max_lines = screen_lines(true); auto const max_lines = screen_lines(true);
auto const text_lines = textbase().lines(); auto text_lines = textbase().lines();
csize.width = _m_width_px(true); if (text_lines <= max_lines)
if (text_lines > max_lines)
{
//enable vertical scrollbar
csize.width = _m_width_px(false);
}
else
{ {
std::size_t lines = 0; std::size_t lines = 0;
for (std::size_t i = 0; i < text_lines; ++i) for (std::size_t i = 0; i < text_lines; ++i)
@@ -3030,13 +3024,15 @@ namespace nana{ namespace widgets
if (lines > max_lines) if (lines > max_lines)
{ {
//enable vertical scrollbar text_lines = lines;
csize.width = _m_width_px(false);
break; break;
} }
} }
} }
//enable vertical scrollbar when text_lines > max_lines
csize.width = _m_width_px(text_lines <= max_lines);
impl_->capacities.behavior->pre_calc_lines(csize.width); impl_->capacities.behavior->pre_calc_lines(csize.width);
} }
else else