MCPcopy Create free account
hub / github.com/KangLin/RabbitRemoteControl / HandleKey

Method HandleKey

Src/Unix/NativeEventFilterUnix.cpp:52–121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50}
51
52bool CNativeEventFilterUnix::HandleKey(
53 xcb_keysym_t keysym, QEvent::Type type, Qt::KeyboardModifiers modifiers)
54{
55 int bRet = false;
56 if(!m_pParameterPlugin
57 || !m_pParameterPlugin->GetCaptureAllKeyboard()) {
58 qDebug(log) << "Native window receive keyboard.";
59 return false;
60 }
61
62 int key = 0;
63 switch (keysym) {
64 case XK_Tab:
65 key = Qt::Key_Tab;
66 bRet = true;
67 break;
68 case XK_Meta_L:
69 case XK_Meta_R:
70 key = Qt::Key_Meta;
71 bRet = true;
72 break;
73 case XK_Alt_L:
74 case XK_Alt_R:
75 key = Qt::Key_Alt;
76 bRet = true;
77 break;
78 case XK_Super_L:
79 key = Qt::Key_Super_L;
80 bRet = true;
81 break;
82 case XK_Super_R:
83 key = Qt::Key_Super_R;
84 bRet = true;
85 break;
86 default:
87 break;
88 }
89
90 if(bRet) {
91 CFrmViewer* focus = qobject_cast<CFrmViewer*>(QApplication::focusWidget());
92 if(focus) {
93
94 QKeyEvent* keyEvent = new QKeyEvent(type, key, modifiers);
95 /*
96 QApplication::postEvent(focus, keyEvent);
97 return true;//*/
98 switch(type)
99 {
100 case QEvent::KeyPress:
101 emit focus->sigKeyPressEvent(keyEvent);
102 break;
103 case QEvent::KeyRelease:
104 emit focus->sigKeyReleaseEvent(keyEvent);
105 break;
106 default:
107 break;
108 }
109 // Because the signals is `Qt::DirectConnection`,

Callers

nothing calls this directly

Calls 1

GetCaptureAllKeyboardMethod · 0.80

Tested by

no test coverage detected