0141f77469f6b69ef77d32d59c9f43612778d722
[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         xcb_generic_event_t *event = static_cast<xcb_generic_event_t *>(message);
22         uint response_type = event->response_type & ~0x80;
23
24         qDebug() << "XCB Event";
25         /* We are only interested in XCB_XKB_STATE_NOTIFY */
26         if (response_type ==  XCB_XKB_STATE_NOTIFY)
27         {
28             xcb_xkb_state_notify_event_t *kbd_event = reinterpret_cast<xcb_xkb_state_notify_event_t *>(event);
29
30             qDebug() << "XCB Mapping Event - group: " << kbd_event->group;
31         }
32     }
33     return false;
34 }