fix event filter
[projets/fookb-qt.git] / xcbEventFilter.cpp
1 #include "xcbEventFilter.h"
2 #include <QApplication>
3 #include <QDebug>
4
5 #include <xcb/xcb.h>
6 #define explicit dont_use_cxx_explicit
7 #include <xcb/xkb.h>
8 #undef explicit
9
10 XcbEventFilter::XcbEventFilter()
11 {
12 }
13
14 XcbEventFilter::~XcbEventFilter()
15 {
16 }
17
18 bool XcbEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *)
19 {
20     if (eventType == "xcb_generic_event_t") {
21         /* We are only interested in XCB_XKB_STATE_NOTIFY */
22         xcb_xkb_state_notify_event_t *xkb_event = static_cast<xcb_xkb_state_notify_event_t *>(message);
23         //qDebug() << "XCB Event: " << xkb_event->any.response_type;
24         if (xkb_event->xkbType == XCB_XKB_STATE_NOTIFY) {
25             /* We get the event twice here. Not critical, but to investigate */
26             qDebug() << "XCB Mapping Event - group: " << xkb_event->group << " - eventType: " << xkb_event->eventType;
27             // TODO: update QML flag
28         }
29     }
30     return false;
31 }