diff options
author | nyamatongwe <unknown> | 2011-12-30 08:59:11 +1100 |
---|---|---|
committer | nyamatongwe <unknown> | 2011-12-30 08:59:11 +1100 |
commit | 3aeb11a8120857d626d3d09237b21513d21328b8 (patch) | |
tree | 04707c7c83f3883de5a0ba6d53e05f37e914d543 | |
parent | bf78662da5ce4167c9ae04a076ec8163b418a653 (diff) | |
download | scintilla-mirror-3aeb11a8120857d626d3d09237b21513d21328b8.tar.gz |
Returned to paint handling from before cange set 3983 as this change failed
to always draw the tab bar and output pane in SciTE.
-rw-r--r-- | win32/ScintillaWin.cxx | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index 76e11e7b7..35f2044fc 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -548,22 +548,22 @@ LRESULT ScintillaWin::WndPaint(uptr_t wParam) { // Redirect assertions to debug output and save current state bool assertsPopup = Platform::ShowAssertionPopUps(false); paintState = painting; + PAINTSTRUCT ps; + PAINTSTRUCT *pps; + + bool IsOcxCtrl = (wParam != 0); // if wParam != 0, it contains + // a PAINSTRUCT* from the OCX + // Removed since this interferes with reporting other assertions as it occurs repeatedly + //PLATFORM_ASSERT(hRgnUpdate == NULL); + hRgnUpdate = ::CreateRectRgn(0, 0, 0, 0); + if (IsOcxCtrl) { + pps = reinterpret_cast<PAINTSTRUCT*>(wParam); + } else { + ::GetUpdateRgn(MainHWND(), hRgnUpdate, FALSE); + pps = &ps; + ::BeginPaint(MainHWND(), pps); + } if (technology == SC_TECHNOLOGY_DEFAULT) { - PAINTSTRUCT ps; - PAINTSTRUCT *pps; - - bool IsOcxCtrl = (wParam != 0); // if wParam != 0, it contains - // a PAINSTRUCT* from the OCX - // Removed since this interferes with reporting other assertions as it occurs repeatedly - //PLATFORM_ASSERT(hRgnUpdate == NULL); - hRgnUpdate = ::CreateRectRgn(0, 0, 0, 0); - if (IsOcxCtrl) { - pps = reinterpret_cast<PAINTSTRUCT*>(wParam); - } else { - ::GetUpdateRgn(MainHWND(), hRgnUpdate, FALSE); - pps = &ps; - ::BeginPaint(MainHWND(), pps); - } AutoSurface surfaceWindow(pps->hdc, this); if (surfaceWindow) { rcPaint = PRectangle(pps->rcPaint.left, pps->rcPaint.top, pps->rcPaint.right, pps->rcPaint.bottom); @@ -572,18 +572,13 @@ LRESULT ScintillaWin::WndPaint(uptr_t wParam) { Paint(surfaceWindow, rcPaint); surfaceWindow->Release(); } - if (!IsOcxCtrl) - ::EndPaint(MainHWND(), pps); } else { #if defined(USE_D2D) EnsureRenderTarget(); AutoSurface surfaceWindow(pRenderTarget, this); if (surfaceWindow) { pRenderTarget->BeginDraw(); - RECT rcUpdate; - ::GetUpdateRect(MainHWND(), &rcUpdate, FALSE); - rcPaint = PRectangle(rcUpdate.left, rcUpdate.top, rcUpdate.right, rcUpdate.bottom); - //rcPaint = GetClientRectangle(); + rcPaint = PRectangle(pps->rcPaint.left, pps->rcPaint.top, pps->rcPaint.right, pps->rcPaint.bottom); PRectangle rcClient = GetClientRectangle(); paintingAllText = rcPaint.Contains(rcClient); if (paintingAllText) { @@ -605,6 +600,8 @@ LRESULT ScintillaWin::WndPaint(uptr_t wParam) { hRgnUpdate = 0; } + if (!IsOcxCtrl) + ::EndPaint(MainHWND(), pps); if (paintState == paintAbandoned) { // Painting area was insufficient to cover new styling or brace highlight positions FullPaint(); |