diff -EbBu gtk+-2.8.17.orig/gtk/gtktreeview.c gtk+-2.8.17/gtk/gtktreeview.c
--- gtk+-2.8.17.orig/gtk/gtktreeview.c	2006-03-23 02:50:54.000000000 +0800
+++ gtk+-2.8.17/gtk/gtktreeview.c	2006-04-30 17:10:10.000000000 +0800
@@ -3910,9 +3910,15 @@
         }
 
       /* draw the big row-spanning focus rectangle, if needed */
+#ifdef G_OS_WIN32
+      /* On Windows, row with cursor of tree view/list view always has focus */
+      if (node == cursor &&
+	  GTK_WIDGET_HAS_FOCUS (widget))
+#else
       if (!has_special_cell && node == cursor &&
 	  GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS) &&
 	  GTK_WIDGET_HAS_FOCUS (widget))
+#endif
         {
 	  gint width;
 	  GtkStateType focus_rect_state;
