diff options
| -rw-r--r-- | alf/alfcompat.cpp | 10 | ||||
| -rw-r--r-- | alf/alflabel.cpp | 6 |
2 files changed, 11 insertions, 5 deletions
diff --git a/alf/alfcompat.cpp b/alf/alfcompat.cpp index 45f5f4a..31c3eaa 100644 --- a/alf/alfcompat.cpp +++ b/alf/alfcompat.cpp @@ -368,6 +368,11 @@ ALF_Compat_fallbackBeginBufferedPaint(HDC hdc, const RECT *prcTarget, DWORD dwFo _alf_compatBufferedPaintPriv->rcTarget = *prcTarget; *phdcTarget = _alf_compatBufferedPaintPriv->hdcBuffer; + OffsetViewportOrgEx(_alf_compatBufferedPaintPriv->hdcBuffer, + -_alf_compatBufferedPaintPriv->rcTarget.left, + -_alf_compatBufferedPaintPriv->rcTarget.top, + NULL); + return _alf_compatBufferedPaintPriv; } @@ -394,6 +399,11 @@ ALF_Compat_fallbackEndBufferedPaint(ALF_Compat_HPAINTBUFFER hpbBuffer, BOOL fUpd if (hpbBuffer != _alf_compatBufferedPaintPriv) return E_INVALIDARG; + OffsetViewportOrgEx(_alf_compatBufferedPaintPriv->hdcBuffer, + _alf_compatBufferedPaintPriv->rcTarget.left, + _alf_compatBufferedPaintPriv->rcTarget.top, + NULL); + if (fUpdateTarget) BitBlt(_alf_compatBufferedPaintPriv->hdcTarget, _alf_compatBufferedPaintPriv->rcTarget.left, diff --git a/alf/alflabel.cpp b/alf/alflabel.cpp index 0a47d58..4643c3f 100644 --- a/alf/alflabel.cpp +++ b/alf/alflabel.cpp @@ -222,12 +222,8 @@ ALF_Label_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); - RECT rcClient; - GetClientRect(hwnd, &rcClient); - RECT rcPaint = { 0, 0, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top }; - HDC hdcBuffer = NULL; - ALF_Compat_HPAINTBUFFER hpb = ALF_Compat_BeginBufferedPaint(hdc, &rcPaint, 0, NULL, &hdcBuffer); + ALF_Compat_HPAINTBUFFER hpb = ALF_Compat_BeginBufferedPaint(hdc, &ps.rcPaint, 0, NULL, &hdcBuffer); if (hpb) { ALF_Label_Paint(hwnd, priv, hdcBuffer, &ps.rcPaint); ALF_Compat_EndBufferedPaint(hpb, TRUE); |
