[BUG_FIXED]

1. Fix the bug regarding the scroll bar for folding issue.
2. Fix the full screen (F11) bug regarding multi-display issue
3. including nppcm64.dll in installer for ths x64 OS.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@102 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
donho 2008-01-12 23:19:47 +00:00
parent 95e2c6d529
commit 2417d3af69
5 changed files with 56 additions and 28 deletions

View File

@ -1,4 +1,4 @@
Notepad++ v4.7.3 fixed bugs and added features (from v4.6) :
Notepad++ v4.7.4 fixed bugs and added features (from v4.7.3) :
1. Make the "recovery system" for 3 mandatory xml files (config.xml, langs.xml and stylers.xml) to prevent the fail loading due to the corrupted files.
2. Extend plugin capacity - add the Scintilla external lexer capacity.

View File

@ -17,16 +17,16 @@
; Define the application name
!define APPNAME "Notepad++"
!define APPNAMEANDVERSION "Notepad++ v4.7.3"
!define APPNAMEANDVERSION "Notepad++ v4.7.4"
!define VERSION_MAJOR 4
!define VERSION_MINOR 73
!define VERSION_MINOR 74
; Main Install settings
Name "${APPNAMEANDVERSION}"
InstallDir "$PROGRAMFILES\Notepad++"
InstallDirRegKey HKLM "Software\${APPNAME}" ""
OutFile "..\bin\npp.4.7.3.Installer.exe"
OutFile "..\bin\npp.4.7.4.Installer.exe"
@ -128,6 +128,7 @@ OutFile "..\bin\npp.4.7.3.Installer.exe"
; Modern interface settings
!include "MUI.nsh"
!include "x64.nsh"
!define MUI_ICON ".\images\npp_inst.ico"
@ -484,9 +485,14 @@ GLOBAL_INST:
SectionEnd
Section "Context Menu Entry" explorerContextMenu
SetOverwrite off
SetOverwrite on
SetOutPath "$INSTDIR\"
${If} ${RunningX64}
File /oname=$INSTDIR\nppcm.dll "..\bin\nppcm64.dll"
${Else}
File "..\bin\nppcm.dll"
${EndIf}
Exec 'regsvr32 /s "$INSTDIR\nppcm.dll"'
Exec 'regsvr32 /u /s "$INSTDIR\nppshellext.dll"'
Delete "$INSTDIR\nppshellext.dll"

View File

@ -3076,9 +3076,13 @@ void Notepad_plus::command(int id)
case IDM_VIEW_WRAP:
{
_pEditView->wrap(!_pEditView->isWrap());
_toolBar.setCheck(IDM_VIEW_WRAP, _pEditView->isWrap());
checkMenuItem(IDM_VIEW_WRAP, _pEditView->isWrap());
bool isWraped = !_pEditView->isWrap();
_pEditView->wrap(isWraped);
_toolBar.setCheck(IDM_VIEW_WRAP, isWraped);
checkMenuItem(IDM_VIEW_WRAP, isWraped);
//if (!isWraped){
// _pEditView->recalcHorizontalScrollbar();
//}
break;
}
case IDM_VIEW_WRAP_SYMBOL:
@ -7289,13 +7293,36 @@ LRESULT CALLBACK Notepad_plus::Notepad_plus_Proc(HWND hwnd, UINT Message, WPARAM
void Notepad_plus::fullScreenToggle()
{
HWND wTaskBar = FindWindow("Shell_TrayWnd", "");
HMONITOR currentMonitor; //Handle to monitor where fullscreen should go
MONITORINFO mi; //Info of that monitor
RECT fullscreenArea; //RECT used to calculate window fullscrene size
_isfullScreen = !_isfullScreen;
if (_isfullScreen)
{
_winPlace.length = sizeof(_winPlace);
::GetWindowPlacement(_hSelf, &_winPlace);
//Preset view area, in case something fails, primary monitor values
fullscreenArea.top = 0;
fullscreenArea.left = 0;
fullscreenArea.right = GetSystemMetrics(SM_CXSCREEN);
fullscreenArea.bottom = GetSystemMetrics(SM_CYSCREEN);
//Caution, this will not work on windows 95, so probably add some checking of some sorts like Unicode checks, IF 95 were to be supported
//if (_isMultimonitorSupported) {
currentMonitor = MonitorFromWindow(_hSelf, MONITOR_DEFAULTTONEAREST); //should always be valid monitor handle
mi.cbSize = sizeof(MONITORINFO);
if (GetMonitorInfo(currentMonitor, &mi) != FALSE) {
fullscreenArea = mi.rcMonitor;
fullscreenArea.right -= fullscreenArea.left;
fullscreenArea.bottom -= fullscreenArea.top;
}
// else {
//Error!, original RECT should serve as fallback
//}
//}
//Hide menu
::SetMenu(_hSelf, NULL);
@ -7313,7 +7340,7 @@ void Notepad_plus::fullScreenToggle()
}
//Set topmost window, show the window and redraw it
::SetWindowPos(_hSelf, HWND_TOPMOST,0,0,GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),0);
::SetWindowPos(_hSelf, HWND_TOPMOST, fullscreenArea.left, fullscreenArea.top, fullscreenArea.right, fullscreenArea.bottom, 0);
::ShowWindow(_hSelf, SW_SHOW);
::SendMessage(_hSelf, WM_SIZE, 0, 0);
}

View File

@ -998,6 +998,7 @@ void ScintillaEditView::collapse(int level2Collapse, bool mode)
execute(SCI_TOGGLEFOLD, line);
}
}
recalcHorizontalScrollbar(); //Update scrollbar after folding
}
void ScintillaEditView::foldCurrentPos(bool mode)
@ -1018,6 +1019,8 @@ void ScintillaEditView::foldCurrentPos(bool mode)
}
if ((execute(SCI_GETFOLDEXPANDED, headerLine) != 0) != mode)
execute(SCI_TOGGLEFOLD, headerLine);
recalcHorizontalScrollbar(); //Update scrollbar after folding
}
void ScintillaEditView::foldAll(bool mode)
@ -1032,6 +1035,7 @@ void ScintillaEditView::foldAll(bool mode)
if ((execute(SCI_GETFOLDEXPANDED, line) != 0) != mode)
execute(SCI_TOGGLEFOLD, line);
}
recalcHorizontalScrollbar(); //Update scrollbar after folding
}
// return the index to close then (argument) the index to activate
@ -1215,6 +1219,7 @@ void ScintillaEditView::expand(int &line, bool doExpand, bool force, int visLeve
line++;
}
}
recalcHorizontalScrollbar(); //Update scrollbar after folding
}
void ScintillaEditView::makeStyle(const char *lexerName, const char **keywordArray)
@ -1294,7 +1299,6 @@ void ScintillaEditView::performGlobalStyles()
execute(SCI_SETFOLDMARGINCOLOUR, true, foldMarginColor);
execute(SCI_SETFOLDMARGINHICOLOUR, true, foldMarginHiColor);
//StyleArray & stylers = _pParameter->getMiscStylerArray();
COLORREF foldfgColor = white;
COLORREF foldbgColor = grey;
i = stylers.getStylerIndexByName("Fold");
@ -1309,17 +1313,13 @@ void ScintillaEditView::performGlobalStyles()
defineMarker(_markersArray[FOLDER_TYPE][j], _markersArray[_folderStyle][j], foldfgColor, foldbgColor);
COLORREF wsSymbolFgColor = black;
//COLORREF wsSymbolBgColor = white;
i = stylers.getStylerIndexByName("White space symbol");
if (i != -1)
{
Style & style = stylers.getStyler(i);
wsSymbolFgColor = style._fgColor;
//wsSymbolBgColor = style._bgColor;
}
execute(SCI_SETWHITESPACEFORE, true, wsSymbolFgColor);
//execute(SCI_SETWHITESPACEBACK, true, wsSymbolBgColor);
}
void ScintillaEditView::setLineIndent(int line, int indent) const {
@ -1606,10 +1606,6 @@ void ScintillaEditView::columnReplace(ColumnModeInfo & cmi, const char *str)
}
void ScintillaEditView::columnReplace(ColumnModeInfo & cmi, int initial, int incr, unsigned char format)
{
// 0000 00 00 : Dec BASE_10
@ -1677,7 +1673,8 @@ void ScintillaEditView::columnReplace(const ColumnModeInfo & cmi, const char ch)
}
//This method recalculates the horizontal scrollbar based
//on the current visible text and styler.
void ScintillaEditView::recalcHorizontalScrollbar() {
void ScintillaEditView::recalcHorizontalScrollbar()
{
int curOffset = execute(SCI_GETXOFFSET);
int maxPixel = 0, curLen;
int numLines = int(execute(SCI_GETLINECOUNT));
@ -1708,6 +1705,4 @@ void ScintillaEditView::recalcHorizontalScrollbar() {
int currentLength = execute(SCI_GETSCROLLWIDTH); //Get current scrollbar size
if (currentLength != maxPixel) //And if it is not the same
execute(SCI_SETSCROLLWIDTH, maxPixel); //update it
//::ShowScrollBar(_hSelf, SB_HORZ, TRUE); //Force scrollbar visible to prevent 'twitchy' behaviour
}

View File

@ -18,9 +18,9 @@
#ifndef RESOURCE_H
#define RESOURCE_H
#define NOTEPAD_PLUS_VERSION "Notepad++ v4.7.3"
#define VERSION_VALUE "4.73\0" // should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
#define VERSION_DIGITALVALUE 4, 7, 3, 0
#define NOTEPAD_PLUS_VERSION "Notepad++ v4.7.4"
#define VERSION_VALUE "4.74\0" // should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
#define VERSION_DIGITALVALUE 4, 7, 4, 0
#ifndef IDC_STATIC
#define IDC_STATIC -1