summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbkeyboard.cpp
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@digia.com>2013-04-26 08:39:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-26 14:18:16 +0200
commitfca94fa5ed8321e84e7b0ff515620fbb901db545 (patch)
tree0172dcecbc859ced094a7ce4665f70902b7dbf7d /src/plugins/platforms/xcb/qxcbkeyboard.cpp
parent7288625c52749f566570a7e7ef047faa8171b18c (diff)
Add QXcbWindowEventListener
This makes it possible to listen for events on xcb_window_t which are not platformwindows inside the xcb plugin Change-Id: Ic9ec17ed757a7f9a5302ef2759c119a72bac573c Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbkeyboard.cpp')
-rw-r--r--src/plugins/platforms/xcb/qxcbkeyboard.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp
index 4ac60f6077..51c400ed9c 100644
--- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp
+++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp
@@ -1172,14 +1172,20 @@ xcb_keysym_t QXcbKeyboard::lookupString(QWindow *window, uint state, xcb_keycode
#endif
}
-void QXcbKeyboard::handleKeyPressEvent(QXcbWindow *window, const xcb_key_press_event_t *event)
+void QXcbKeyboard::handleKeyPressEvent(QXcbWindowEventListener *eventListener, const xcb_key_press_event_t *event)
{
+ QXcbWindow *window = eventListener->toWindow();
+ if (!window)
+ return;
window->updateNetWmUserTime(event->time);
handleKeyEvent(window->window(), QEvent::KeyPress, event->detail, event->state, event->time);
}
-void QXcbKeyboard::handleKeyReleaseEvent(QXcbWindow *window, const xcb_key_release_event_t *event)
+void QXcbKeyboard::handleKeyReleaseEvent(QXcbWindowEventListener *eventListener, const xcb_key_release_event_t *event)
{
+ QXcbWindow *window = eventListener->toWindow();
+ if (!window)
+ return;
handleKeyEvent(window->window(), QEvent::KeyRelease, event->detail, event->state, event->time);
}