fix text_editor content calculation
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user