4 #if !TTK_QT_VERSION_CHECK(6,0,0) && TTK_QT_VERSION_CHECK(5,1,0) || !TTK_QT_VERSION_CHECK(5,0,0)
8 return QX11Info::display();
13 return QX11Info::appRootWindow();
18 static Display *display = XOpenDisplay(NULL);
49 #if !TTK_QT_VERSION_CHECK(5,0,0)
53 if(event->type == KeyPress)
56 unsigned int keycode = key->keycode;
57 unsigned int keystate = key->state;
59 bool QGlobalShortcutPrivate::nativeEventFilter(
const QByteArray &type,
void *message,
qint *)
61 xcb_key_press_event_t *kev =
nullptr;
62 if(type ==
"xcb_generic_event_t")
64 xcb_generic_event_t *
event =
TTKStaticCast(xcb_generic_event_t*, message);
65 if((event->response_type & 127) == XCB_KEY_PRESS)
73 unsigned int keycode = kev->detail;
74 unsigned int keystate = 0;
76 if(kev->state & XCB_MOD_MASK_1)
78 if(kev->state & XCB_MOD_MASK_CONTROL)
79 keystate |= ControlMask;
80 if(kev->state & XCB_MOD_MASK_4)
82 if(kev->state & XCB_MOD_MASK_SHIFT)
83 keystate |= ShiftMask;
87 keystate & (ShiftMask | ControlMask | Mod1Mask | Mod4Mask));
96 if(modifiers & Qt::ShiftModifier)
98 if(modifiers & Qt::ControlModifier)
99 native |= ControlMask;
100 if(modifiers & Qt::AltModifier)
102 if(modifiers & Qt::MetaModifier)
111 return display ? XKeysymToKeycode(display, XStringToKeysym(QKeySequence(key).
toString().toLatin1().data())) : 0;
125 int pointer = GrabModeAsync;
126 int keyboard = GrabModeAsync;
130 XGrabKey(display, nativeKey, nativeMods, window, owner, pointer, keyboard);
131 XGrabKey(display, nativeKey, nativeMods | Mod2Mask, window, owner, pointer, keyboard);
132 XSync(display, False);
150 XUngrabKey(display, nativeKey, nativeMods, window);
151 XUngrabKey(display, nativeKey, nativeMods | Mod2Mask, window);
152 XSync(display, False);
static quint32 nativeKeycode(Qt::Key keycode)
#define TTKStaticCast(x, y)
static constexpr wchar_t key[]
static quint32 nativeModifiers(Qt::KeyboardModifiers modifiers)
static bool unregisterShortcut(quint32 nativeKey, quint32 nativeMods)
TTK_MODULE_EXPORT QString toString(Record type)
static Window X11RootWindow()
static bool eventFilter(void *message)
static bool registerShortcut(quint32 nativeKey, quint32 nativeMods)
#define TTKReinterpretCast(x, y)
static Display * X11Display()
static void activateShortcut(quint32 nativeKey, quint32 nativeMods)