[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: list view completely mangled in WINE
From: Filip Navara <xnavara () volny ! cz>
Date: 2004-07-31 3:52:21
Message-ID: 410B1775.7090705 () volny ! cz
[Download RAW message or body]
Tobias Burnus wrote:
[snip]
Can you try the attached patch please?
Regards,
Filip
["comctl32_diamond.patch" (text/plain)]
Changelog:
- Don't update infoPtr->dwStyle in LISTVIEW_WindoProc. It's already
handled in LISTVIEW_StyleChanged and LISTVIEW_Create processing.
- Fix TOOLBAR_DrawMasked to correctly use image list mask.
Index: comctl32/toolbar.c
===================================================================
--- comctl32/toolbar.c (revision 1)
+++ comctl32/toolbar.c (working copy)
@@ -658,8 +658,7 @@
/* Create src image */
hdcImage = CreateCompatibleDC(hdc);
- hbmImage = CreateBitmap(cx, cy, GetDeviceCaps(hdc,PLANES),
- GetDeviceCaps(hdc,BITSPIXEL), NULL);
+ hbmImage = CreateCompatibleBitmap(hdc, cx, cy);
SelectObject(hdcImage, hbmImage);
ImageList_DrawEx(himl, index, hdcImage, 0, 0, cx, cy,
RGB(0xff, 0xff, 0xff), RGB(0,0,0), ILD_NORMAL);
@@ -670,8 +669,8 @@
SelectObject(hdcMask, hbmMask);
/* Remove the background and all white pixels */
- SetBkColor(hdcImage, ImageList_GetBkColor(himl));
- BitBlt(hdcMask, 0, 0, cx, cy, hdcImage, 0, 0, SRCCOPY);
+ ImageList_DrawEx(himl, index, hdcMask, 0, 0, cx, cy,
+ RGB(0xff, 0xff, 0xff), RGB(0,0,0), ILD_MASK);
SetBkColor(hdcImage, RGB(0xff, 0xff, 0xff));
BitBlt(hdcMask, 0, 0, cx, cy, hdcImage, 0, 0, NOTSRCERASE);
Index: comctl32/listview.c
===================================================================
--- comctl32/listview.c (revision 1)
+++ comctl32/listview.c (working copy)
@@ -117,7 +117,6 @@
* -- LVM_GETISEARCHSTRINGW, LVM_GETISEARCHSTRINGA
* -- LVM_GETTILEINFO, LVM_SETTILEINFO
* -- LVM_GETTILEVIEWINFO, LVM_SETTILEVIEWINFO
- * -- LVM_GETTOOLTIPS, LVM_SETTOOLTIPS
* -- LVM_GETUNICODEFORMAT, LVM_SETUNICODEFORMAT
* -- LVM_GETVIEW, LVM_SETVIEW
* -- LVM_GETWORKAREAS, LVM_SETWORKAREAS
@@ -8782,11 +8781,6 @@
if (!infoPtr && (uMsg != WM_CREATE))
return DefWindowProcW(hwnd, uMsg, wParam, lParam);
- if (infoPtr)
- {
- infoPtr->dwStyle = GetWindowLongW(hwnd, GWL_STYLE);
- }
-
switch (uMsg)
{
case LVM_APPROXIMATEVIEWRECT:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic