http://bugs.winehq.org/show_bug.cgi?id=27711
Summary: ListView_SetTextBkColor may lead to infinite loop Product: Wine Version: 1.3.23 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: comctl32 AssignedTo: wine-bugs@winehq.org ReportedBy: ocean04@suomi24.fi
Article: http://www.delphidabbler.com/articles?article=16 Source: http://www.delphidabbler.com/download?id=art-16
That code is infinite loop in wine (from point where it says: "..simply add the code shown in Listing 3 to the end of the OnCustomDraw event")
Most simple infinite loop in wine:
procedure TForm1.ListView1CustomDraw(Sender: TCustomListView; const ARect: TRect; var DefaultDraw: Boolean); begin ListView_SetTextBkColor(listview1.Handle, CLR_NONE); end;
I'll add sample exe if needed. winetricks comclt32 helps
http://bugs.winehq.org/show_bug.cgi?id=27711
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |testcase
http://bugs.winehq.org/show_bug.cgi?id=27711
ocean04@suomi24.fi changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://netikka.net/dev/infi | |nite.exe
--- Comment #1 from ocean04@suomi24.fi 2011-07-09 07:34:23 CDT --- Sample is now found http://netikka.net/dev/infinite.exe
Simple listview with some items + that code above + counter how many times draw is called.
http://bugs.winehq.org/show_bug.cgi?id=27711
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com 2011-07-20 05:56:09 CDT --- Confirming, will send a fix soon.
http://bugs.winehq.org/show_bug.cgi?id=27711
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com 2011-07-20 13:08:22 CDT --- Should be fixed by 4fc8c44bf1197eb6d4913a040a0238fb389abc09. Please retest.
Related fixes 43a199d54dceeee5a872d333fd25cd0c879b9e03, 0a92c01a57531c6cb4ad24a6cee9ae9cc9961049.
http://bugs.winehq.org/show_bug.cgi?id=27711
--- Comment #4 from ocean04@suomi24.fi 2011-07-21 01:51:29 CDT --- Loop is now gone, thanks! Transparency is not working in that article demo. Is it related to this change? If not, I'll create new bug.
Compiled demo found here: http://netikka.net/dev/CustomLVDemo.exe (checking that checkbox text should become transparent, works with native comctl32)
http://bugs.winehq.org/show_bug.cgi?id=27711
--- Comment #5 from ocean04@suomi24.fi 2011-07-21 02:56:49 CDT --- Tried this:
static BOOL LISTVIEW_SetTextBkColor(LISTVIEW_INFO *infoPtr, COLORREF color) { FIXME("(oldcolor=%x)\n", infoPtr->clrTextBk); FIXME("(newcolor=%x)\n", color);
When I check and then uncheck, I get:
fixme:listview:LISTVIEW_SetTextBkColor (oldcolor=ffffff) fixme:listview:LISTVIEW_SetTextBkColor (newcolor=ffffffff) fixme:listview:LISTVIEW_SetTextBkColor (oldcolor=ffffff) fixme:listview:LISTVIEW_SetTextBkColor (newcolor=ffffff)
3rd line, color was already white? Expecting to see oldcolor ffffffff. Possibly this is why there was invalidate loop?
http://bugs.winehq.org/show_bug.cgi?id=27711
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com 2011-07-21 04:14:24 CDT --- (In reply to comment #5)
Tried this:
static BOOL LISTVIEW_SetTextBkColor(LISTVIEW_INFO *infoPtr, COLORREF color) { FIXME("(oldcolor=%x)\n", infoPtr->clrTextBk); FIXME("(newcolor=%x)\n", color);
When I check and then uncheck, I get:
fixme:listview:LISTVIEW_SetTextBkColor (oldcolor=ffffff) fixme:listview:LISTVIEW_SetTextBkColor (newcolor=ffffffff) fixme:listview:LISTVIEW_SetTextBkColor (oldcolor=ffffff) fixme:listview:LISTVIEW_SetTextBkColor (newcolor=ffffff)
3rd line, color was already white? Expecting to see oldcolor ffffffff. Possibly this is why there was invalidate loop?
There's no invalidation with native module in any case, so a fix is right I think. Initial problem is fixed, so yes, please open a new bug for transparency problem.
http://bugs.winehq.org/show_bug.cgi?id=27711
--- Comment #7 from ocean04@suomi24.fi 2011-07-21 06:45:03 CDT --- OK, thanks! New is bug 27854
http://bugs.winehq.org/show_bug.cgi?id=27711
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org 2011-07-22 12:43:35 CDT --- Closing bugs fixed in 1.3.25.
http://bugs.winehq.org/show_bug.cgi?id=27711
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |4fc8c44bf1197eb6d4913a040a0 | |238fb389abc09