user32: BM_SETSTATE handler needs to repaint the button including focus rectangle.

Dmitry Timoshkov dmitry at codeweavers.com
Tue Apr 13 22:34:47 CDT 2010


Alexandre Julliard <julliard at winehq.org> wrote:

> > While playing with the button painting bug I noticed that the button doesn't
> > repaint its focus when you hold mouse button and move it outside and then back
> > to the button.
> 
> It looks to me that you should fix the push button paint routine,
> instead of changing the notification type.

Do you mean that the push button paint proc should be changed to paint focus rect
in the case of ODA_SELECT as well as ODA_DRAWENTIRE? I didn't want to do that because
all button painting procs have similar logic for drawing the focus, and it seemed
safe enough to change ODA_SELECT to ODA_DRAWENTIRE in the BM_SETSTATE handler.
I see now that UB_Paint relies on ODA_SELECT, and perhaps ODA_SELECT should be
passed to BS_USERBUTTON, and ODA_DRAWENTIRE to everyone else for BM_SETSTATE.

-- 
Dmitry.



More information about the wine-devel mailing list