Fixed [wxRichTextCtrl] Right Alignment sets text in the RTC too close to the border (#10277)

Also [wxRichTextCtrl] Wrong text positioning if different font sizes in the same paragraph (#10279)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@57972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2009-01-10 14:55:07 +00:00
parent 73d2bd8f21
commit b759e7d3d0
2 changed files with 10 additions and 0 deletions

View File

@@ -114,6 +114,8 @@ All (GUI):
- Fixed inability to select no superscript and no subscript in wxRichTextCtrl's
formatting dialog.
- Fixed centering and right-justification when combined with left indentation.
- Fixed lack of right margin when centering or right-justifying in a wxRTC.
- Fixed wrong wxRTC descent when wrapping lines with different font sizes.
- Fixed wrapping problem for long lines.
- Fixed wxHTML's pagebreaks computation in tables (D.J.Stauffer).
- Fixed wxHtmlWindow::SelectionToText() to correctly insert newlines after

View File

@@ -4004,6 +4004,10 @@ bool wxRichTextParagraph::Layout(wxDC& dc, const wxRect& rect, int style)
wxSize actualSize;
wxRichTextRange actualRange(lastCompletedEndPos+1, wrapPosition);
/// Use previous descent, not the wrapping descent we just found, since this may be too big
/// for the fragment we're about to add.
childDescent = maxDescent;
#if wxRICHTEXT_USE_PARTIAL_TEXT_EXTENTS
// Get height only, then the width using the partial extents
GetRangeSize(actualRange, actualSize, childDescent, dc, wxRICHTEXT_UNFORMATTED|wxRICHTEXT_HEIGHT_ONLY);
@@ -4175,12 +4179,16 @@ void wxRichTextParagraph::ApplyParagraphStyle(const wxTextAttrEx& attr, const wx
{
int rightIndent = ConvertTenthsMMToPixels(* g_globalDC, attr.GetRightIndent());
pos.x = (rect.GetWidth() - (pos.x - rect.x) - rightIndent - size.x)/2 + pos.x;
// Lines are relative to the paragraph position
pos.x -= GetPosition().x;
line->SetPosition(pos);
}
else if (attr.HasAlignment() && GetAttributes().GetAlignment() == wxTEXT_ALIGNMENT_RIGHT)
{
int rightIndent = ConvertTenthsMMToPixels(* g_globalDC, attr.GetRightIndent());
pos.x = rect.x + rect.GetWidth() - size.x - rightIndent;
// Lines are relative to the paragraph position
pos.x -= GetPosition().x;
line->SetPosition(pos);
}