diff options
Diffstat (limited to 'win32/ScintillaWin.cxx')
-rw-r--r-- | win32/ScintillaWin.cxx | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index 7cdbc64e6..31419127f 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -345,7 +345,7 @@ LRESULT ScintillaWin::WndProc(UINT iMessage, WPARAM wParam, LPARAM lParam) { // i.e. if datazoomed out only class structures are visible, when datazooming in the control // structures appear, then eventually the individual statements...) if (wParam & MK_SHIFT) { - return DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); + return ::DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); } // Either SCROLL or ZOOM. We handle the wheel steppings calculation @@ -435,12 +435,12 @@ LRESULT ScintillaWin::WndProc(UINT iMessage, WPARAM wParam, LPARAM lParam) { int ret = KeyDown(wParam, Platform::IsKeyDown(VK_SHIFT), Platform::IsKeyDown(VK_CONTROL), false); if (!ret) - return DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); + return ::DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); break; } case WM_IME_KEYDOWN: - return DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); + return ::DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); case WM_KEYUP: //Platform::DebugPrintf("S keyup %d %x %x\n",iMessage, wParam, lParam); @@ -537,13 +537,27 @@ LRESULT ScintillaWin::WndProc(UINT iMessage, WPARAM wParam, LPARAM lParam) { return ::DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); case WM_ERASEBKGND: + return 1; // Avoid any background erasure as whole window painted. + + // These are not handled in Scintilla and its faster to dispatch them here. + // Also moves time out to here so profile doesn't count lots of empty message calls. + case WM_MOVE: + case WM_MOUSEACTIVATE: case WM_NCHITTEST: + case WM_NCCALCSIZE: case WM_NCPAINT: + case WM_NCMOUSEMOVE: + case WM_NCLBUTTONDOWN: + case WM_CAPTURECHANGED: + case WM_IME_SETCONTEXT: + case WM_IME_NOTIFY: + case WM_SYSCOMMAND: + case WM_WINDOWPOSCHANGING: + case WM_WINDOWPOSCHANGED: return ::DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); default: - //return ::DefWindowProc(wMain.GetID(), iMessage, wParam, lParam); - return ScintillaBase::WndProc(iMessage, wParam, lParam); + return ScintillaBase::WndProc(iMessage, wParam, lParam); } return 0l; } @@ -1493,12 +1507,12 @@ LRESULT PASCAL ScintillaWin::CTWndProc( reinterpret_cast<LONG>(pCreate->lpCreateParams)); return 0; } else { - return DefWindowProc(hWnd, iMessage, wParam, lParam); + return ::DefWindowProc(hWnd, iMessage, wParam, lParam); } } else { if (iMessage == WM_DESTROY) { SetWindowLong(hWnd, 0, 0); - return DefWindowProc(hWnd, iMessage, wParam, lParam); + return ::DefWindowProc(hWnd, iMessage, wParam, lParam); } else if (iMessage == WM_PAINT) { PAINTSTRUCT ps; ::BeginPaint(hWnd, &ps); @@ -1509,7 +1523,7 @@ LRESULT PASCAL ScintillaWin::CTWndProc( ::EndPaint(hWnd, &ps); return 0; } else { - return DefWindowProc(hWnd, iMessage, wParam, lParam); + return ::DefWindowProc(hWnd, iMessage, wParam, lParam); } } } @@ -1528,14 +1542,14 @@ LRESULT PASCAL ScintillaWin::SWndProc( SetWindowLong(hWnd, 0, reinterpret_cast<LONG>(sci)); return sci->WndProc(iMessage, wParam, lParam); } else { - return DefWindowProc(hWnd, iMessage, wParam, lParam); + return ::DefWindowProc(hWnd, iMessage, wParam, lParam); } } else { if (iMessage == WM_DESTROY) { sci->Finalise(); delete sci; SetWindowLong(hWnd, 0, 0); - return DefWindowProc(hWnd, iMessage, wParam, lParam); + return ::DefWindowProc(hWnd, iMessage, wParam, lParam); } else { return sci->WndProc(iMessage, wParam, lParam); } |