[ENHANCEMENT] Enhance doc map.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@885 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
Don Ho 2012-03-18 23:48:54 +00:00
parent c1c738348d
commit 870a4f1050

View File

@ -176,14 +176,26 @@ void DocumentMap::scrollMap()
_pScintillaEditView->execute(SCI_GOTOLINE, firstVisibleDocLine); _pScintillaEditView->execute(SCI_GOTOLINE, firstVisibleDocLine);
// Get the editor's higher/lower Y, then compute the map's higher/lower Y // Get the editor's higher/lower Y, then compute the map's higher/lower Y
int higherPos = _pScintillaEditView->execute(SCI_POSITIONFROMLINE, firstVisibleDocLine); int higherY = 0;
int lowerPos = _pScintillaEditView->execute(SCI_POSITIONFROMLINE, lastVisibleDocLine); int lowerY = 0;
int higherY = _pScintillaEditView->execute(SCI_POINTYFROMPOSITION, 0, higherPos); if (!(*_ppEditView)->isWrap())
int lowerY = _pScintillaEditView->execute(SCI_POINTYFROMPOSITION, 0, lowerPos);
if (lowerY == 0)
{ {
int higherPos = _pScintillaEditView->execute(SCI_POSITIONFROMLINE, firstVisibleDocLine);
int lowerPos = _pScintillaEditView->execute(SCI_POSITIONFROMLINE, lastVisibleDocLine);
higherY = _pScintillaEditView->execute(SCI_POINTYFROMPOSITION, 0, higherPos);
lowerY = _pScintillaEditView->execute(SCI_POINTYFROMPOSITION, 0, lowerPos);
if (lowerY == 0)
{
int lineHeight = _pScintillaEditView->execute(SCI_TEXTHEIGHT, firstVisibleDocLine);
lowerY = nbLine * lineHeight + firstVisibleDocLine;
}
}
else
{
int higherPos = (*_ppEditView)->execute(SCI_POSITIONFROMPOINT, 0, 0);
higherY = _pScintillaEditView->execute(SCI_POINTYFROMPOSITION, 0, higherPos);
int lineHeight = _pScintillaEditView->execute(SCI_TEXTHEIGHT, firstVisibleDocLine); int lineHeight = _pScintillaEditView->execute(SCI_TEXTHEIGHT, firstVisibleDocLine);
lowerY = nbLine * lineHeight + firstVisibleDocLine; lowerY = nbLine * lineHeight + higherY;
} }
// Update view zone in map // Update view zone in map