diff options
author | nyamatongwe <unknown> | 2008-07-27 08:17:23 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2008-07-27 08:17:23 +0000 |
commit | 5846f322feaf16de1e146530769ffd42f752f057 (patch) | |
tree | bd3759d875fdd15341bbd0d4ec325c164b814b55 /win32/ScintillaWin.cxx | |
parent | 74bf9b9fc6186ad580d333823fb0bfb9db43f083 (diff) | |
download | scintilla-mirror-5846f322feaf16de1e146530769ffd42f752f057.tar.gz |
Property to set interpratation of keys to always use Unicode.
Diffstat (limited to 'win32/ScintillaWin.cxx')
-rw-r--r-- | win32/ScintillaWin.cxx | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index b06683a9b..b4c5a825f 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -283,6 +283,7 @@ private: HBITMAP sysCaretBitmap; int sysCaretWidth; int sysCaretHeight; + bool keysAlwaysUnicode; }; HINSTANCE ScintillaWin::hInstance = 0; @@ -320,6 +321,8 @@ ScintillaWin::ScintillaWin(HWND hwnd) { sysCaretWidth = 0; sysCaretHeight = 0; + keysAlwaysUnicode = false; + Initialise(); } @@ -763,7 +766,7 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam case WM_CHAR: if (((wParam >= 128) || !iscntrl(wParam)) || !lastKeyDownConsumed) { - if (::IsWindowUnicode(MainHWND())) { + if (::IsWindowUnicode(MainHWND()) || keysAlwaysUnicode) { wchar_t wcs[2] = {wParam, 0}; if (IsUnicodeMode()) { // For a wide character version of the window: @@ -1011,6 +1014,13 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam ::SetFocus(MainHWND()); break; + case SCI_SETKEYSUNICODE: + keysAlwaysUnicode = wParam != 0; + break; + + case SCI_GETKEYSUNICODE: + return keysAlwaysUnicode; + #ifdef SCI_LEXER case SCI_LOADLEXERLIBRARY: LexerManager::GetInstance()->Load(reinterpret_cast<const char*>(lParam)); |