]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/listctrl.cpp
backported fix for proper tree ctrl refershing after changing item colour/font from 2.2
[wxWidgets.git] / src / msw / listctrl.cpp
index c64d714f58da415dd3dbc93db2958613123b3674..59abe4c9c536d7c31d06c00a142386902c9aea19 100644 (file)
@@ -1621,8 +1621,22 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                 const NM_CACHEHINT *cacheHint = (NM_CACHEHINT *)lParam;
 
                 eventType = wxEVT_COMMAND_LIST_CACHE_HINT;
-                event.m_oldItemIndex = cacheHint->iFrom;
-                event.m_itemIndex = cacheHint->iTo;
+
+                // we get some really stupid cache hints like ones for items in
+                // range 0..0 for an empty control or, after deleting an item,
+                // for items in invalid range - filter this garbage out
+                if ( cacheHint->iFrom < cacheHint->iTo )
+                {
+                    event.m_oldItemIndex = cacheHint->iFrom;
+
+                    long iMax = GetItemCount();
+                    event.m_itemIndex = cacheHint->iTo < iMax ? cacheHint->iTo
+                                                              : iMax - 1;
+                }
+                else
+                {
+                    return FALSE;
+                }
             }
             break;