diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index c38639e8f..c23f98fa0 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -1468,7 +1468,7 @@ void Notepad_plus::enableCommand(int cmdID, bool doEnable, int which) const void Notepad_plus::checkClipboard() { - bool hasSelection = (_pEditView->execute(SCI_GETSELECTIONSTART) != _pEditView->execute(SCI_GETSELECTIONEND)) || (_pEditView->execute(SCI_GETSELECTIONS) > 0); + bool hasSelection = (_pEditView->execute(SCI_GETSELECTIONSTART) != _pEditView->execute(SCI_GETSELECTIONEND)); bool canPaste = (_pEditView->execute(SCI_CANPASTE) != 0); enableCommand(IDM_EDIT_CUT, hasSelection, MENU | TOOLBAR); enableCommand(IDM_EDIT_COPY, hasSelection, MENU | TOOLBAR); diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc index 0b354a402..aa008f6aa 100644 --- a/PowerEditor/src/Notepad_plus.rc +++ b/PowerEditor/src/Notepad_plus.rc @@ -435,7 +435,9 @@ BEGIN MENUITEM "Project Panel 2", IDM_VIEW_PROJECT_PANEL_2 MENUITEM "Project Panel 3", IDM_VIEW_PROJECT_PANEL_3 END +#ifdef UNICODE MENUITEM "Document Map", IDM_VIEW_DOC_MAP +#endif MENUITEM SEPARATOR MENUITEM "Synchronize Vertical Scrolling", IDM_VIEW_SYNSCROLLV MENUITEM "Synchronize Horizontal Scrolling", IDM_VIEW_SYNSCROLLH diff --git a/PowerEditor/src/NppBigSwitch.cpp b/PowerEditor/src/NppBigSwitch.cpp index f843a4dc7..966c8a1dc 100644 --- a/PowerEditor/src/NppBigSwitch.cpp +++ b/PowerEditor/src/NppBigSwitch.cpp @@ -1259,11 +1259,17 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa case WM_NOTIFY: { - checkClipboard(); - checkUndoState(); - checkMacroState(); - _pluginsManager.notify(reinterpret_cast(lParam)); - return notify(reinterpret_cast(lParam)); + SCNotification *notification = reinterpret_cast(lParam); + + if (notification->nmhdr.code == SCN_UPDATEUI) + { + checkClipboard(); //6 + checkUndoState(); //4 + } + + _pluginsManager.notify(notification); + + return notify(notification); } case NPPM_INTERNAL_CHECKDOCSTATUS : diff --git a/PowerEditor/src/NppCommands.cpp b/PowerEditor/src/NppCommands.cpp index 300d963f5..63fb2e716 100644 --- a/PowerEditor/src/NppCommands.cpp +++ b/PowerEditor/src/NppCommands.cpp @@ -1148,16 +1148,18 @@ void Notepad_plus::command(int id) case IDM_VIEW_WRAP: { - //if (_pDocMap && !_pDocMap->isVisible()) - { - bool isWraped = !_pEditView->isWrap(); - _mainEditView.wrap(isWraped); - _subEditView.wrap(isWraped); - _toolBar.setCheck(IDM_VIEW_WRAP, isWraped); - checkMenuItem(IDM_VIEW_WRAP, isWraped); + bool isWraped = !_pEditView->isWrap(); + _mainEditView.wrap(isWraped); + _subEditView.wrap(isWraped); + _toolBar.setCheck(IDM_VIEW_WRAP, isWraped); + checkMenuItem(IDM_VIEW_WRAP, isWraped); - ScintillaViewParams & svp1 = (ScintillaViewParams &)(NppParameters::getInstance())->getSVP(); - svp1._doWrap = isWraped; + ScintillaViewParams & svp1 = (ScintillaViewParams &)(NppParameters::getInstance())->getSVP(); + svp1._doWrap = isWraped; + + if (_pDocMap) + { + _pDocMap->wrapActionDone(); } break; } diff --git a/PowerEditor/src/NppNotification.cpp b/PowerEditor/src/NppNotification.cpp index ca5d64ede..7c25d8c2d 100644 --- a/PowerEditor/src/NppNotification.cpp +++ b/PowerEditor/src/NppNotification.cpp @@ -442,7 +442,7 @@ BOOL Notepad_plus::notify(SCNotification *notification) if (_pDocMap) { - _pDocMap->scrollMap(); + _pDocMap->guiUpdate(); } break; } diff --git a/PowerEditor/src/WinControls/DocumentMap/documentMap.cpp b/PowerEditor/src/WinControls/DocumentMap/documentMap.cpp index 87c07f6c4..75c831caf 100644 --- a/PowerEditor/src/WinControls/DocumentMap/documentMap.cpp +++ b/PowerEditor/src/WinControls/DocumentMap/documentMap.cpp @@ -39,7 +39,8 @@ void DocumentMap::reloadMap() _pScintillaEditView->syncFoldStateWith((*_ppEditView)->getCurrentFoldStates()); // Wrapping - //wrapMap(); + initWrapMap(); + wrapMap(); scrollMap(); @@ -58,6 +59,17 @@ void DocumentMap::initWrapMap() } } +void DocumentMap::guiUpdate() +{ + if (_wrapUnwrapTriggered) + { + initWrapMap(); + wrapMap(); + } + scrollMap(); + _wrapUnwrapTriggered = false; +} + void DocumentMap::wrapMap() { RECT rect; diff --git a/PowerEditor/src/WinControls/DocumentMap/documentMap.h b/PowerEditor/src/WinControls/DocumentMap/documentMap.h index ee344244e..7532102f0 100644 --- a/PowerEditor/src/WinControls/DocumentMap/documentMap.h +++ b/PowerEditor/src/WinControls/DocumentMap/documentMap.h @@ -115,6 +115,12 @@ public: return _isMainEditorWrap; }; + void wrapActionDone() { + _wrapUnwrapTriggered = true; + }; + + void guiUpdate(); + protected: virtual BOOL CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam); @@ -124,6 +130,7 @@ private: //HWND _glassHandle; ViewZoneDlg _vzDlg; bool _isMainEditorWrap; + bool _wrapUnwrapTriggered; };