]> git.saurik.com Git - wxWidgets.git/commitdiff
Send generic wxListCtrl wxEVT_COMMAND_LIST_KEY_DOWN events from OnKeyDown rather...
authorSteve Lamerton <steve.lamerton@gmail.com>
Wed, 22 Sep 2010 08:48:15 +0000 (08:48 +0000)
committerSteve Lamerton <steve.lamerton@gmail.com>
Wed, 22 Sep 2010 08:48:15 +0000 (08:48 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

interface/wx/listctrl.h
src/generic/listctrl.cpp
tests/controls/listbasetest.cpp

index c6252bca22740c11af1d8c543138d907cad78d5c..5b50f9853793277d3e1680bbec527f46ae6e7222 100644 (file)
@@ -1085,7 +1085,7 @@ protected:
     @event{EVT_LIST_ITEM_RIGHT_CLICK(id, func)}
         The right mouse button has been clicked on an item.
     @event{EVT_LIST_KEY_DOWN(id, func)}
-        A key has been pressed.
+        A key has been pressed. GetIndex() may be -1 if no item is selected. 
     @event{EVT_LIST_INSERT_ITEM(id, func)}
         An item has been inserted.
     @event{EVT_LIST_COL_CLICK(id, func)}
index 008ee790783dcf528a606bbef5cba41857ebcfc6..4ce0960f73534b1b4e3bca3ade6fd75b05847cf8 100644 (file)
@@ -2682,6 +2682,16 @@ void wxListMainWindow::OnKeyDown( wxKeyEvent &event )
     if (parent->GetEventHandler()->ProcessEvent( ke ))
         return;
 
+    // send a list event
+    wxListEvent le( wxEVT_COMMAND_LIST_KEY_DOWN, parent->GetId() );
+    le.m_itemIndex = m_current;
+    if (HasCurrent())
+        GetLine(m_current)->GetItem( 0, le.m_item );
+    le.m_code = event.GetKeyCode();
+    le.SetEventObject( parent );
+    if (parent->GetEventHandler()->ProcessEvent( le ))
+        return;
+
     event.Skip();
 }
 
@@ -2701,17 +2711,6 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
 {
     wxWindow *parent = GetParent();
 
-    // send a list_key event up
-    if ( HasCurrent() )
-    {
-        wxListEvent le( wxEVT_COMMAND_LIST_KEY_DOWN, GetParent()->GetId() );
-        le.m_itemIndex = m_current;
-        GetLine(m_current)->GetItem( 0, le.m_item );
-        le.m_code = event.GetKeyCode();
-        le.SetEventObject( parent );
-        parent->GetEventHandler()->ProcessEvent( le );
-    }
-
     // propagate the char event upwards
     wxKeyEvent ke(event);
     ke.SetEventObject( parent );
index 75e2f56a09434bf764ef15519ffdede4bc67d90e..8876612b49af8cf12dd7693c31e4dd3652a5448e 100644 (file)
@@ -228,7 +228,7 @@ void ListBaseTestCase::ItemClick()
 
 void ListBaseTestCase::KeyDown()
 {
-#if wxUSE_UIACTIONSIMULATOR && !defined(__WXGTK__)
+#if wxUSE_UIACTIONSIMULATOR
     wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(),
                                           wxTestableFrame);
 
@@ -239,8 +239,6 @@ void ListBaseTestCase::KeyDown()
     wxUIActionSimulator sim;
 
     list->SetFocus();
-    wxYield();
-
     sim.Text("aAbB");
     wxYield();