Fixed bad rendering with tabs by correcting the position tabs are calculated from
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -5117,7 +5117,7 @@ bool wxRichTextPlainText::DrawTabbedString(wxDC& dc, const wxRichTextAttr& attr,
|
|||||||
dc.SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT);
|
dc.SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxCoord x_orig = x;
|
wxCoord x_orig = GetParent()->GetPosition().x;
|
||||||
while (hasTabs)
|
while (hasTabs)
|
||||||
{
|
{
|
||||||
// the string has a tab
|
// the string has a tab
|
||||||
@@ -5216,6 +5216,7 @@ bool wxRichTextPlainText::GetRangeSize(const wxRichTextRange& range, wxSize& siz
|
|||||||
|
|
||||||
wxRichTextParagraph* para = wxDynamicCast(GetParent(), wxRichTextParagraph);
|
wxRichTextParagraph* para = wxDynamicCast(GetParent(), wxRichTextParagraph);
|
||||||
wxASSERT (para != NULL);
|
wxASSERT (para != NULL);
|
||||||
|
int relativeX = position.x - GetParent()->GetPosition().x;
|
||||||
|
|
||||||
wxRichTextAttr textAttr(para ? para->GetCombinedAttributes(GetAttributes()) : GetAttributes());
|
wxRichTextAttr textAttr(para ? para->GetCombinedAttributes(GetAttributes()) : GetAttributes());
|
||||||
|
|
||||||
@@ -5302,9 +5303,9 @@ bool wxRichTextPlainText::GetRangeSize(const wxRichTextRange& range, wxSize& siz
|
|||||||
partialExtents->Add(oldWidth + p[j]);
|
partialExtents->Add(oldWidth + p[j]);
|
||||||
|
|
||||||
if (partialExtents->GetCount() > 0)
|
if (partialExtents->GetCount() > 0)
|
||||||
absoluteWidth = (*partialExtents)[(*partialExtents).GetCount()-1] + position.x;
|
absoluteWidth = (*partialExtents)[(*partialExtents).GetCount()-1] + relativeX;
|
||||||
else
|
else
|
||||||
absoluteWidth = position.x;
|
absoluteWidth = relativeX;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -5331,7 +5332,7 @@ bool wxRichTextPlainText::GetRangeSize(const wxRichTextRange& range, wxSize& siz
|
|||||||
}
|
}
|
||||||
|
|
||||||
notFound = false;
|
notFound = false;
|
||||||
width = nextTabPos - position.x;
|
width = nextTabPos - relativeX;
|
||||||
|
|
||||||
if (partialExtents)
|
if (partialExtents)
|
||||||
partialExtents->Add(width);
|
partialExtents->Add(width);
|
||||||
|
Reference in New Issue
Block a user