From 9fe25f1329437699d8dcb76e34440c5ada23711d Mon Sep 17 00:00:00 2001
From: Kevin Ollivier <kevino@theolliviers.com>
Date: Tue, 28 Nov 2006 04:52:21 +0000
Subject: [PATCH] Propagate key up events to the wxGenericListCtrl parent, like
 we do with key down and char events.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 src/generic/listctrl.cpp | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp
index 3bda4a220f..40a79102d5 100644
--- a/src/generic/listctrl.cpp
+++ b/src/generic/listctrl.cpp
@@ -609,6 +609,7 @@ public:
 
     void OnChar( wxKeyEvent &event );
     void OnKeyDown( wxKeyEvent &event );
+    void OnKeyUp( wxKeyEvent &event );
     void OnSetFocus( wxFocusEvent &event );
     void OnKillFocus( wxFocusEvent &event );
     void OnScroll( wxScrollWinEvent& event );
@@ -2233,6 +2234,7 @@ BEGIN_EVENT_TABLE(wxListMainWindow,wxScrolledWindow)
   EVT_MOUSE_EVENTS   (wxListMainWindow::OnMouse)
   EVT_CHAR           (wxListMainWindow::OnChar)
   EVT_KEY_DOWN       (wxListMainWindow::OnKeyDown)
+  EVT_KEY_UP         (wxListMainWindow::OnKeyUp)      
   EVT_SET_FOCUS      (wxListMainWindow::OnSetFocus)
   EVT_KILL_FOCUS     (wxListMainWindow::OnKillFocus)
   EVT_SCROLLWIN      (wxListMainWindow::OnScroll)
@@ -3309,6 +3311,25 @@ void wxListMainWindow::OnKeyDown( wxKeyEvent &event )
     event.Skip();
 }
 
+void wxListMainWindow::OnKeyUp( wxKeyEvent &event )
+{
+    wxWindow *parent = GetParent();
+
+    // propagate the key event upwards
+    wxKeyEvent ke( wxEVT_KEY_UP );
+    ke.m_shiftDown = event.m_shiftDown;
+    ke.m_controlDown = event.m_controlDown;
+    ke.m_altDown = event.m_altDown;
+    ke.m_metaDown = event.m_metaDown;
+    ke.m_keyCode = event.m_keyCode;
+    ke.m_x = event.m_x;
+    ke.m_y = event.m_y;
+    ke.SetEventObject( parent );
+    if (parent->GetEventHandler()->ProcessEvent( ke )) return;
+
+    event.Skip();
+}
+
 void wxListMainWindow::OnChar( wxKeyEvent &event )
 {
     wxWindow *parent = GetParent();
-- 
2.47.2