]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/stc/ScintillaWX.cpp
Typos fixed and further clarification of the Python situation on Panther
[wxWidgets.git] / contrib / src / stc / ScintillaWX.cpp
index 6acb7805d1a7996cc1e8831ecf9099f809d7442f..26e966cf36e90d6ba10fc83cdec3268daef8f740 100644 (file)
@@ -19,6 +19,7 @@
 #include "ExternalLexer.h"
 #include "wx/stc/stc.h"
 #include "PlatWX.h"
+#include <wx/textbuf.h>
 
 //----------------------------------------------------------------------
 // Helper classes
@@ -384,7 +385,7 @@ void ScintillaWX::Paste() {
 void ScintillaWX::CopyToClipboard(const SelectionText& st) {
     if (wxTheClipboard->Open()) {
         wxTheClipboard->UsePrimarySelection(FALSE);
-        wxString text = stc2wx(st.s, st.len);
+        wxString text = wxTextBuffer::Translate(stc2wx(st.s, st.len));
         wxTheClipboard->SetData(new wxTextDataObject(text));
         wxTheClipboard->Close();
     }
@@ -527,7 +528,7 @@ void ScintillaWX::DoPaint(wxDC* dc, wxRect rect) {
     delete surfaceWindow;
     if (paintState == paintAbandoned) {
         // Painting area was insufficient to cover new styling or brace highlight positions
-        FullPaint();
+        FullPaint(dc);
     }
     paintState = notPainting;
 }
@@ -832,18 +833,18 @@ void ScintillaWX::DoDragLeave() {
 //----------------------------------------------------------------------
 
 // Redraw all of text area. This paint will not be abandoned.
-void ScintillaWX::FullPaint() {
+void ScintillaWX::FullPaint(wxDC *dc) {
+    wxCHECK_RET(dc != NULL, wxT("Invalid wxDC in ScintillaWX::FillPaint"));
     paintState = painting;
     rcPaint = GetClientRectangle();
     paintingAllText = true;
-    wxClientDC dc(stc);
     Surface* surfaceWindow = Surface::Allocate();
-    surfaceWindow->Init(&dc, wMain.GetID());
+    surfaceWindow->Init(dc, wMain.GetID());
 
-    dc.BeginDrawing();
-    ClipChildren(dc, rcPaint);
+    dc->BeginDrawing();
+    ClipChildren(*dc, rcPaint);
     Paint(surfaceWindow, rcPaint);
-    dc.EndDrawing();
+    dc->EndDrawing();
 
     delete surfaceWindow;
     paintState = notPainting;