Resets scroll position on load
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
e4d6cfadda
commit
169adfa9c4
@ -561,7 +561,7 @@ public:
|
||||
virtual bool SetFont(const wxFont& font);
|
||||
|
||||
/// Set up scrollbars, e.g. after a resize
|
||||
virtual void SetupScrollbars();
|
||||
virtual void SetupScrollbars(bool atTop = false);
|
||||
|
||||
/// Keyboard navigation
|
||||
virtual bool Navigate(int keyCode, int flags);
|
||||
|
@ -1949,6 +1949,8 @@ bool wxRichTextParagraph::Draw(wxDC& dc, const wxRichTextRange& WXUNUSED(range),
|
||||
/// Lay the item out
|
||||
bool wxRichTextParagraph::Layout(wxDC& dc, const wxRect& rect, int style)
|
||||
{
|
||||
// ClearLines();
|
||||
|
||||
// Increase the size of the paragraph due to spacing
|
||||
int spaceBeforePara = ConvertTenthsMMToPixels(dc, GetAttributes().GetParagraphSpacingBefore());
|
||||
int spaceAfterPara = ConvertTenthsMMToPixels(dc, GetAttributes().GetParagraphSpacingAfter());
|
||||
@ -4859,13 +4861,16 @@ bool wxRichTextPlainTextHandler::DoLoadFile(wxRichTextBuffer *buffer, wxInputStr
|
||||
{
|
||||
int ch = stream.GetC();
|
||||
|
||||
if (ch == 10 && lastCh != 13)
|
||||
str += wxT('\n');
|
||||
|
||||
if (ch > 0 && ch != 10)
|
||||
str += wxChar(ch);
|
||||
|
||||
lastCh = ch;
|
||||
if (!stream.Eof())
|
||||
{
|
||||
if (ch == 10 && lastCh != 13)
|
||||
str += wxT('\n');
|
||||
|
||||
if (ch > 0 && ch != 10)
|
||||
str += wxChar(ch);
|
||||
|
||||
lastCh = ch;
|
||||
}
|
||||
}
|
||||
|
||||
buffer->Clear();
|
||||
|
@ -1331,7 +1331,7 @@ void wxRichTextCtrl::OnSize(wxSizeEvent& event)
|
||||
}
|
||||
|
||||
/// Set up scrollbars, e.g. after a resize
|
||||
void wxRichTextCtrl::SetupScrollbars()
|
||||
void wxRichTextCtrl::SetupScrollbars(bool atTop)
|
||||
{
|
||||
if (m_freezeCount)
|
||||
return;
|
||||
@ -1351,8 +1351,9 @@ void wxRichTextCtrl::SetupScrollbars()
|
||||
|
||||
int unitsY = maxHeight/pixelsPerUnit;
|
||||
|
||||
int startX, startY;
|
||||
GetViewStart(& startX, & startY);
|
||||
int startX = 0, startY = 0;
|
||||
if (!atTop)
|
||||
GetViewStart(& startX, & startY);
|
||||
|
||||
int maxPositionX = 0; // wxMax(sz.x - clientSize.x, 0);
|
||||
int maxPositionY = (wxMax(maxHeight - clientSize.y, 0))/pixelsPerUnit;
|
||||
@ -1413,6 +1414,7 @@ bool wxRichTextCtrl::LoadFile(const wxString& filename, int type)
|
||||
SetInsertionPoint(0);
|
||||
Layout();
|
||||
PositionCaret();
|
||||
SetupScrollbars(true);
|
||||
Refresh();
|
||||
SendUpdateEvent();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user