ListView control focus patch

Sami Nopanen sam at pcuf.fi
Sun Jul 13 16:04:26 CDT 2003


Two small fixes for ListView focus handling.
- ListView should handle EN_KILLFOCUS WM_COMMAND message. It currently does not.
- When sorting a list, we need to invalidate the focus rectangle. 
Currently, if the sorting causes the focused item to go out of the visible 
window area, the focus rectangle will be drawn incorrectly at its old 
place.

-- 
// Sami Nopanen - sam at pcuf.fi / snopanen at cc.hut.fi
-------------- next part --------------
Index: listview.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/listview.c,v
retrieving revision 1.356
diff -u -r1.356 listview.c
--- listview.c	9 Jul 2003 02:52:58 -0000	1.356
+++ listview.c	13 Jul 2003 20:56:41 -0000
@@ -7087,6 +7087,10 @@
     if (uView != LVS_ICON && uView != LVS_SMALLICON)
 	LISTVIEW_InvalidateList(infoPtr);
 
+    /* invalidate focus rectangle */
+    if (infoPtr->bFocus)
+      SetRectEmpty(&infoPtr->rcFocus);
+
     return TRUE;
 }
 
@@ -9027,6 +9031,12 @@
 	    ReleaseDC(infoPtr->hwndSelf, hdc);
 
 	    break;
+	}
+
+	case EN_KILLFOCUS:
+	{
+            LISTVIEW_KillFocus(infoPtr);
+            break;
 	}
 
 	default:


More information about the wine-patches mailing list