Author: gadamopoulos
Date: Fri May 12 12:44:49 2017
New Revision: 74522
URL:
http://svn.reactos.org/svn/reactos?rev=74522&view=rev
Log:
[UXTHEME] -Fix the tab background pattern hack when the background pattern is smaller than
the window that we are trying to paint. CORE-13147, CORE-13192.
There is still a bug where the pattern doesn't change after a theme change.
Modified:
trunk/reactos/dll/win32/uxtheme/themehooks.c
Modified: trunk/reactos/dll/win32/uxtheme/themehooks.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/themehoo…
==============================================================================
--- trunk/reactos/dll/win32/uxtheme/themehooks.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/uxtheme/themehooks.c [iso-8859-1] Fri May 12 12:44:49 2017
@@ -312,14 +312,13 @@
{
/* Unfortunately SetBrushOrgEx doesn't work at all */
RECT rcWindow, rcParent;
- POINT pt;
+ UINT y;
HDC hdcPattern, hdcHackPattern;
HBITMAP hbmpOld1, hbmpold2, hbmpHack;
GetWindowRect(hwnd, &rcWindow);
GetWindowRect(GetParent(hwnd), &rcParent);
- pt.x = rcWindow.left - rcParent.left;
- pt.y = rcWindow.top - rcParent.top;
+ y = (rcWindow.top - rcParent.top) % bmpRect.bottom;
hdcPattern = CreateCompatibleDC(hdc);
hbmpOld1 = (HBITMAP)SelectObject(hdcPattern, hbmp);
@@ -328,8 +327,8 @@
hbmpHack = CreateCompatibleBitmap(hdc, bmpRect.right, bmpRect.bottom);
hbmpold2 = (HBITMAP)SelectObject(hdcHackPattern, hbmpHack);
- BitBlt(hdcHackPattern, 0, 0, bmpRect.right, bmpRect.bottom - pt.y,
hdcPattern, 0, pt.y, SRCCOPY);
- BitBlt(hdcHackPattern, 0, bmpRect.bottom - pt.y, bmpRect.right, pt.y,
hdcPattern, 0, 0, SRCCOPY);
+ BitBlt(hdcHackPattern, 0, 0, bmpRect.right, bmpRect.bottom - y, hdcPattern,
0, y, SRCCOPY);
+ BitBlt(hdcHackPattern, 0, bmpRect.bottom - y, bmpRect.right, y, hdcPattern,
0, 0, SRCCOPY);
hbmpold2 = (HBITMAP)SelectObject(hdcHackPattern, hbmpold2);
hbmpOld1 = (HBITMAP)SelectObject(hdcPattern, hbmpOld1);