]> git.saurik.com Git - wxWidgets.git/commitdiff
fix for focus handling when deleting the items
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 25 Jul 2001 16:13:32 +0000 (16:13 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 25 Jul 2001 16:13:32 +0000 (16:13 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/listctrl.h
src/generic/listctrl.cpp

index 2b633a5a0e401e5b89c6c8be72ff4148fab55396..75cab160e56431eeb79e537b5b65a1fd0817cd81 100644 (file)
@@ -196,7 +196,6 @@ protected:
     virtual wxListItemAttr *OnGetItemAttr(long item) const;
 
     // it calls our OnGetXXX() functions
-
     friend class WXDLLEXPORT wxListMainWindow;
 
 private:
index 23f67b2520cc17be46a53d9fe52d387851b065da..5aeb20c2e528ceb0b584a234b0fd73798813511a 100644 (file)
@@ -3813,10 +3813,16 @@ void wxListMainWindow::DeleteItem( long lindex )
 
     size_t index = (size_t)lindex;
 
-    // select the next item when the selected one is deleted
-    if ( m_current >= index )
+    // we don't need to adjust the index for the previous items
+    if ( HasCurrent() && m_current >= index )
     {
-        m_current--;
+        // if the current item is being deleted, we want the next one to
+        // become selected - unless there is no next one - so don't adjust
+        // m_current in this case
+        if ( m_current != index || m_current == count - 1 )
+        {
+            m_current--;
+        }
     }
 
     if ( InReportView() )