From c1c738348d34d6bceb70466f23445344a26ecd55 Mon Sep 17 00:00:00 2001 From: Don Ho Date: Sun, 18 Mar 2012 23:16:54 +0000 Subject: [PATCH] [ENHANCEMENT] Doc map: Improve wrapping operation. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@884 f5eea248-9336-0410-98b8-ebc06183d4e3 --- .../WinControls/DocumentMap/documentMap.cpp | 44 ++----------------- 1 file changed, 4 insertions(+), 40 deletions(-) diff --git a/PowerEditor/src/WinControls/DocumentMap/documentMap.cpp b/PowerEditor/src/WinControls/DocumentMap/documentMap.cpp index a1be6d50e..8092d133b 100644 --- a/PowerEditor/src/WinControls/DocumentMap/documentMap.cpp +++ b/PowerEditor/src/WinControls/DocumentMap/documentMap.cpp @@ -110,7 +110,6 @@ sprintf(dchar, "%f", ddd); // 18 => 11 // 19 => 11.5 // 20 => 12 - */ double zoomRatio[] = {1, 1, 1, 1, 1.5, 2, 2.5, 2.5, 3.5, 3.5,\ 4, 4.5, 5, 5, 5.5, 6, 6.5, 7, 7, 7.5, 8, 8.5, 8.5, 9.5, 9.5, 10, 10.5, 11, 11, 11.5, 12}; @@ -211,20 +210,8 @@ void DocumentMap::scrollMap(bool direction, moveMode whichMode) // Visible line for the code view int firstVisibleDisplayLine = (*_ppEditView)->execute(SCI_GETFIRSTVISIBLELINE); int nbLine = (*_ppEditView)->execute(SCI_LINESONSCREEN, firstVisibleDisplayLine); - int lastVisibleDisplayLine = firstVisibleDisplayLine + nbLine; - int nbLine2go = (whichMode == perLine?1:nbLine); - int line2go = 1; - - if (direction == moveDown) - { - line2go = (*_ppEditView)->execute(SCI_DOCLINEFROMVISIBLE, lastVisibleDisplayLine + nbLine2go); - } - else - { - line2go = (*_ppEditView)->execute(SCI_DOCLINEFROMVISIBLE, firstVisibleDisplayLine - nbLine2go); - } - (*_ppEditView)->execute(SCI_GOTOLINE, line2go); + (*_ppEditView)->execute(SCI_LINESCROLL, 0, (direction == moveDown)?nbLine2go:-nbLine2go); scrollMap(); } @@ -351,35 +338,12 @@ BOOL CALLBACK DocumentMap::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPara { int newPosY = HIWORD(lParam); int currentCenterPosY = _vzDlg.getCurrentCenterPosY(); - //int currentHeight = _vzDlg.getViewerHeight(); - - bool dir = (newPosY < currentCenterPosY)?moveUp:moveDown; int pixelPerLine = _pScintillaEditView->execute(SCI_TEXTHEIGHT, 0); + int jumpDistance = newPosY - currentCenterPosY; + int nbLine2jump = jumpDistance/pixelPerLine; + (*_ppEditView)->execute(SCI_LINESCROLL, 0, nbLine2jump); - int jumpDistance; - if (dir == moveUp) - { - jumpDistance = currentCenterPosY - newPosY; - int nbLine2jump = jumpDistance/pixelPerLine; - int firstVisibleDisplayLine = (*_ppEditView)->execute(SCI_GETFIRSTVISIBLELINE); - firstVisibleDisplayLine -= nbLine2jump; - if (firstVisibleDisplayLine < 0) - firstVisibleDisplayLine = 0; - (*_ppEditView)->execute(SCI_GOTOLINE, (*_ppEditView)->execute(SCI_DOCLINEFROMVISIBLE, firstVisibleDisplayLine)); - } - else - { - jumpDistance = newPosY - currentCenterPosY; - int nbLine2jump = jumpDistance/pixelPerLine; - int firstVisibleDisplayLine = (*_ppEditView)->execute(SCI_GETFIRSTVISIBLELINE); - int nbLine = (*_ppEditView)->execute(SCI_LINESONSCREEN, firstVisibleDisplayLine); - int lastVisibleDisplayLine = firstVisibleDisplayLine + nbLine; - - lastVisibleDisplayLine += nbLine2jump; - (*_ppEditView)->execute(SCI_GOTOLINE, (*_ppEditView)->execute(SCI_DOCLINEFROMVISIBLE, lastVisibleDisplayLine)); - } scrollMap(); - } return TRUE;