"Alexandre Julliard" <[EMAIL PROTECTED]> wrote: > It's probably a regression around GetUpdateRect and related functions. > The easiest way to fix it would be to get me a copy of that app, if > that's possible.
Haven't the code demonstrating the problem already been sent to the list? ----- Original Message ----- From: "Nick Hornback" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Tuesday, January 11, 2005 7:20 AM Subject: Re: Fwd: Foobar2000 audio player Regression > I just mentioned the problem on foobars irc channel, > and someone posted some sample WM_PAINT code that I > believe is what you might have been looking for > (BeginPaint isn't used anywhere). According to the > foobar devs, and I've heard this from previous threads > in the foobar forums when wine had issues with > repainting the playlist, is that BeginPaint is not > nessesary, and that seems to be a recuring problem > with wine. > > Attached is the code that was posted in the irc > channel. I'm not enough of a dev to make sense of it, > but hopefully it'll help. > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > case WM_PAINT: > { > struct > { > RECT rcPaint; > HDC hdc; > } ps; > if (!GetUpdateRect(wnd,&ps.rcPaint,0)) > GetClientRect(wnd,&ps.rcPaint); > ps.hdc = GetDC(wnd); > > int min,max; > min = display_offset + (ps.rcPaint.top/item_height); > max = display_offset + (ps.rcPaint.bottom/item_height) + 2; > int n; > if (max>get_count()) max = get_count(); > for(n=min;n<max;n++) repaint(n,ps.hdc,&ps.rcPaint); > > int blank_top = (get_count() - display_offset) * item_height; > if (blank_top < ps.rcPaint.bottom) > { > RECT temp = ps.rcPaint; > temp.top = blank_top; > HBRUSH br = CreateSolidBrush(cfg_playlist_background); > FillRect(ps.hdc,&temp,br); > DeleteObject(br); > } > ReleaseDC(wnd,ps.hdc); > ValidateRect(wnd,&ps.rcPaint); -- Dmitry.
