Added wxApp::CheckForKeyUp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
d5dbeb3140
commit
3d9431bf7e
@ -363,6 +363,19 @@ void wxApp::ProcessXEvent(WXEvent* _event)
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (event->type == KeyRelease)
|
||||
{
|
||||
if (CheckForKeyUp(_event))
|
||||
{
|
||||
// We intercepted and processed the key up event
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
XtDispatchEvent(event);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (event->type == PropertyNotify)
|
||||
{
|
||||
HandlePropertyChange(_event);
|
||||
@ -660,6 +673,31 @@ bool wxApp::CheckForKeyDown(WXEvent* event)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool wxApp::CheckForKeyUp(WXEvent* event)
|
||||
{
|
||||
XEvent* xEvent = (XEvent*) event;
|
||||
if (xEvent->xany.type == KeyRelease)
|
||||
{
|
||||
Widget widget = XtWindowToWidget((Display*) wxGetDisplay(),
|
||||
xEvent->xany.window);
|
||||
wxWindow* win = NULL;
|
||||
|
||||
// Find the first wxWindow that corresponds to this event window
|
||||
while (widget && !(win = wxGetWindowFromTable(widget)))
|
||||
widget = XtParent(widget);
|
||||
|
||||
if (!widget || !win)
|
||||
return FALSE;
|
||||
|
||||
wxKeyEvent keyEvent(wxEVT_KEY_UP);
|
||||
wxTranslateKeyEvent(keyEvent, win, (Widget) 0, xEvent);
|
||||
|
||||
return win->ProcessEvent( keyEvent );
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void wxExit()
|
||||
{
|
||||
int retValue = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user