http://bugs.winehq.org/show_bug.cgi?id=10258
Summary: Missing region invalidation in listbox Product: Wine Version: CVS/GIT Platform: PC URL: http://www.pulsen.se OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-user AssignedTo: wine-bugs@winehq.org ReportedBy: peter@cendio.se
This bug is similiar to bug 10240. The Magna Cura application uses the Ultimate Grid Control (http://www.theultimatetoolbox.com/products/ultimategrid/) in it's Calendar. A drop down listbox is opened when "down" buttons are pressed. This listbox is not painted properly, see screenshot at http://www.cendio.com/~astrand/wine/48-ultimate-grid/nopaint.png. Here, xclock has been dragged over the listbox, which is then repainted correctly.
Magna Cura is not available for testing, as described in bug 10240. There's a demo application of the Ultimate Grid available from http://www.theultimatetoolbox.com/try/, but for some reason I cannot reproduce the problem with this demo.
By executing Wine slowly, I've realized that the listbox is actually drawn correctly at first, then incorrectly repainted blue.
I'm not 100% certain that the problem is with the listbox implementation, but in any case, the problem goes away with this patch:
--- listbox.c (revision 13259) +++ listbox.c (arbetskopia) @@ -3064,6 +3064,7 @@ if (descr->focus_item != -1) LISTBOX_RepaintItem( descr, descr->focus_item, ODA_FOCUS ); SEND_NOTIFICATION( descr, LBN_SETFOCUS ); + InvalidateRect(descr->self, NULL, TRUE); return 0; case WM_KILLFOCUS: descr->in_focus = FALSE;