]> git.saurik.com Git - wxWidgets.git/commitdiff
Patch [ 877891 ] Share the DC from DoPaint with FullPaint in ScintillaWX
authorRobin Dunn <robin@alldunn.com>
Fri, 16 Jan 2004 00:52:17 +0000 (00:52 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 16 Jan 2004 00:52:17 +0000 (00:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/src/stc/ScintillaWX.cpp
contrib/src/stc/ScintillaWX.h
src/stc/ScintillaWX.cpp
src/stc/ScintillaWX.h

index 1fbbf77860047cb87b1aa6d0a99405639151981b..26e966cf36e90d6ba10fc83cdec3268daef8f740 100644 (file)
@@ -528,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;
 }
@@ -833,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;
index d0d383d50765f74b05c441fcced9f4fd685b2ee9..799e58ed5a289b5bed14b76f823067038aaf29fa 100644 (file)
@@ -156,7 +156,7 @@ public:
 
 
     // helpers
-    void FullPaint();
+    void FullPaint(wxDC *dc);
     bool CanPaste();
     bool GetHideSelection() { return hideSelection; }
     void DoScrollToLine(int line);
index 1fbbf77860047cb87b1aa6d0a99405639151981b..26e966cf36e90d6ba10fc83cdec3268daef8f740 100644 (file)
@@ -528,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;
 }
@@ -833,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;
index d0d383d50765f74b05c441fcced9f4fd685b2ee9..799e58ed5a289b5bed14b76f823067038aaf29fa 100644 (file)
@@ -156,7 +156,7 @@ public:
 
 
     // helpers
-    void FullPaint();
+    void FullPaint(wxDC *dc);
     bool CanPaste();
     bool GetHideSelection() { return hideSelection; }
     void DoScrollToLine(int line);