MCPcopy Create free account
hub / github.com/Zalafina/QKeyMapper / releaseKeyboardModifiers

Method releaseKeyboardModifiers

QKeyMapper/qkeymapper_worker.cpp:16747–16835  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16745}
16746
16747bool QKeyMapper_Worker::releaseKeyboardModifiers(const Qt::KeyboardModifiers modifiers, const QString &original_key, const QStringList &mappingkeyslist)
16748{
16749 Q_UNUSED(original_key);
16750 if (mappingkeyslist.size() == 1 && mappingkeyslist.constFirst() == KEY_BLOCKED_STR) {
16751 return false;
16752 }
16753
16754 bool releasemodifier = false;
16755 QStringList pressedKeyboardModifiersList;
16756 if ((GetAsyncKeyState(VK_LSHIFT) & 0x8000) != 0 && modifiers.testFlag(Qt::ShiftModifier)) {
16757 pressedKeyboardModifiersList.append("L-Shift");
16758 releasemodifier = true;
16759 }
16760 if ((GetAsyncKeyState(VK_RSHIFT) & 0x8000) != 0 && modifiers.testFlag(Qt::ShiftModifier)) {
16761 pressedKeyboardModifiersList.append("R-Shift");
16762 releasemodifier = true;
16763 }
16764 if ((GetAsyncKeyState(VK_LCONTROL) & 0x8000) != 0 && modifiers.testFlag(Qt::ControlModifier)) {
16765 pressedKeyboardModifiersList.append("L-Ctrl");
16766 releasemodifier = true;
16767 }
16768 if ((GetAsyncKeyState(VK_RCONTROL) & 0x8000) != 0 && modifiers.testFlag(Qt::ControlModifier)) {
16769 pressedKeyboardModifiersList.append("R-Ctrl");
16770 releasemodifier = true;
16771 }
16772 if ((GetAsyncKeyState(VK_LMENU) & 0x8000) != 0 && modifiers.testFlag(Qt::AltModifier)) {
16773 pressedKeyboardModifiersList.append("L-Alt");
16774 releasemodifier = true;
16775 }
16776 if ((GetAsyncKeyState(VK_RMENU) & 0x8000) != 0 && modifiers.testFlag(Qt::AltModifier)) {
16777 pressedKeyboardModifiersList.append("R-Alt");
16778 releasemodifier = true;
16779 }
16780 if ((GetAsyncKeyState(VK_LWIN) & 0x8000) != 0 && modifiers.testFlag(Qt::MetaModifier)) {
16781 pressedKeyboardModifiersList.append("L-Win");
16782 releasemodifier = true;
16783 }
16784 if ((GetAsyncKeyState(VK_RWIN) & 0x8000) != 0 && modifiers.testFlag(Qt::MetaModifier)) {
16785 pressedKeyboardModifiersList.append("R-Win");
16786 releasemodifier = true;
16787 }
16788
16789 if (pressedKeyboardModifiersList.isEmpty()) {
16790 return false;
16791 }
16792
16793 SendInputTaskController &controller = SendInputTask::s_GlobalSendInputTaskController;
16794 controller.sendvirtualkey_state = SENDVIRTUALKEY_STATE_MODIFIERS;
16795 for (const QString &modifierstr : std::as_const(pressedKeyboardModifiersList)) {
16796 QStringList mappingKeyList = QStringList() << modifierstr;
16797 // QKeyMapper_Worker::getInstance()->emit_sendInputKeysSignal_Wrapper(findindex, mappingKeyList, KEY_UP, original_key, SENDMODE_NORMAL, SENDVIRTUALKEY_STATE_MODIFIERS);
16798 QKeyMapper_Worker::getInstance()->sendInputKeys(-1, mappingKeyList, KEY_UP, KEYBOARD_MODIFIERS, SENDMODE_NORMAL, controller);
16799 }
16800 controller.sendvirtualkey_state = SENDVIRTUALKEY_STATE_NORMAL;
16801
16802 if (modifiers.testFlag(Qt::AltModifier)) {
16803 bool shift_ctrl_modifier_status = false;
16804 if ((GetAsyncKeyState(VK_LSHIFT) & 0x8000) != 0

Callers

nothing calls this directly

Calls 3

sizeMethod · 0.80
isEmptyMethod · 0.80
sendInputKeysMethod · 0.80

Tested by

no test coverage detected