https://bugs.winehq.org/show_bug.cgi?id=27579
--- Comment #38 from wine.fixes@gmail.com --- It's also possible to force the uTorrent 3 window to redraw correctly by preventing the program from assigning a custom Window Procedure routine to the upper panel, which forces the original WndProc routine to be used instead, and LISTVIEW_EraseBkgnd() to be automatically called upon resizing.
In the [ dlls/user32.c/WIN_SetWindowLong() ] routine, add the following three lines beneath the "case GWLP_WNDPROC:" line in the "switch (offset)" section:-
char class_name[200]; GetClassNameA(hwnd, class_name, 200); if (memcmp (class_name, "SysListView32", 13) == 0 ) {break;}
Note: When uTorrent 3 first launches (i.e. before a torrent is added), the upper panel redraws correctly because it does not initially appear to be a ListView window – possibly due to the presence of a sub-window in the main panel which reads: "Go to Featured Content to get torrents."
uTorrent 2 does not seem to set a custom WndProc routine for the main panel (and never features the "Featured Content" window), which seems to be why it draws correctly (unlike uTorrent 3). A similar error can be generated in uTorrent 2 by entering "return 1;" at the beginning of the [ dlls/comctl32/listview.c/LISTVIEW_EraseBkgnd() ] function; if ‘0' is returned instead, then the ‘fErase' flag in [dlls/user32/painting.c/BeginPaint() ] seems to get set, and the window redrawn.