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:
Julian Smart 2005-10-20 22:51:57 +00:00
parent e4d6cfadda
commit 169adfa9c4
3 changed files with 18 additions and 11 deletions

View File

@ -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);

View File

@ -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();

View File

@ -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();