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:
@@ -363,6 +363,19 @@ void wxApp::ProcessXEvent(WXEvent* _event)
|
|||||||
return;
|
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)
|
else if (event->type == PropertyNotify)
|
||||||
{
|
{
|
||||||
HandlePropertyChange(_event);
|
HandlePropertyChange(_event);
|
||||||
@@ -660,6 +673,31 @@ bool wxApp::CheckForKeyDown(WXEvent* event)
|
|||||||
return FALSE;
|
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()
|
void wxExit()
|
||||||
{
|
{
|
||||||
int retValue = 0;
|
int retValue = 0;
|
||||||
|
Reference in New Issue
Block a user