X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d429e1874391e29f35e42f209e0a57f113790d58..5335e9c406f59fa71910e919bd4e6fa4b9a82706:/src/stc/ScintillaWX.cpp diff --git a/src/stc/ScintillaWX.cpp b/src/stc/ScintillaWX.cpp index bcb1c29b5b..f139054299 100644 --- a/src/stc/ScintillaWX.cpp +++ b/src/stc/ScintillaWX.cpp @@ -14,12 +14,27 @@ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// +#define Point macPoint // These names are also defined by some mac headers so +#define Style macStyle // change their names, and then undef before we need them + +#include +#include +#include +#include +#include + +#undef Point +#undef Style #include "ScintillaWX.h" #include "ExternalLexer.h" #include "wx/stc/stc.h" #include "PlatWX.h" -#include + +#ifdef __WXMSW__ + // GetHwndOf() + #include +#endif //---------------------------------------------------------------------- // Helper classes @@ -181,6 +196,11 @@ ScintillaWX::ScintillaWX(wxStyledTextCtrl* win) { stc = win; wheelRotation = 0; Initialise(); +#ifdef __WXMSW__ + sysCaretBitmap = 0; + sysCaretWidth = 0; + sysCaretHeight = 0; +#endif } @@ -451,7 +471,7 @@ void ScintillaWX::Paste() { void ScintillaWX::CopyToClipboard(const SelectionText& st) { if (wxTheClipboard->Open()) { wxTheClipboard->UsePrimarySelection(false); - wxString text = wxTextBuffer::Translate(stc2wx(st.s, st.len)); + wxString text = wxTextBuffer::Translate(stc2wx(st.s, st.len-1)); wxTheClipboard->SetData(new wxTextDataObject(text)); wxTheClipboard->Close(); } @@ -631,6 +651,7 @@ long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lPar LexerManager::GetInstance()->Load((const char*)lParam); break; #endif + default: return ScintillaBase::WndProc(iMessage, wParam, lParam); } @@ -835,7 +856,7 @@ int ScintillaWX::DoKeyDown(const wxKeyEvent& evt, bool* consumed) bool shift = evt.ShiftDown(), ctrl = evt.ControlDown(), alt = evt.AltDown(); - + if (ctrl && key >= 1 && key <= 26) key += 'A' - 1; @@ -855,6 +876,7 @@ int ScintillaWX::DoKeyDown(const wxKeyEvent& evt, bool* consumed) case WXK_ESCAPE: key = SCK_ESCAPE; break; case WXK_BACK: key = SCK_BACK; break; case WXK_TAB: key = SCK_TAB; break; + case WXK_NUMPAD_ENTER: // fall through case WXK_RETURN: key = SCK_RETURN; break; case WXK_ADD: // fall through case WXK_NUMPAD_ADD: key = SCK_ADD; break; @@ -978,7 +1000,9 @@ void ScintillaWX::DoDragLeave() { // Force the whole window to be repainted void ScintillaWX::FullPaint() { +#ifndef __WXMAC__ stc->Refresh(false); +#endif stc->Update(); }