MCPcopy Create free account
hub / github.com/deskflow/deskflow / fakeKey

Method fakeKey

src/lib/platform/OSXKeyState.cpp:596–637  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

594}
595
596void OSXKeyState::fakeKey(const Keystroke &keystroke)
597{
598 switch (keystroke.m_type) {
599 case Keystroke::KeyType::Button: {
600 bool keyDown = keystroke.m_data.m_button.m_press;
601 uint32_t client = keystroke.m_data.m_button.m_client;
602 KeyButton button = keystroke.m_data.m_button.m_button;
603 CGKeyCode virtualKey = mapKeyButtonToVirtualKey(button);
604
605 LOG_DEBUG1(
606 " button=0x%04x virtualKey=0x%04x keyDown=%s client=0x%04x", button, virtualKey, keyDown ? "down" : "up",
607 client
608 );
609
610 setKeyboardModifiers(virtualKey, keyDown);
611 if (postHIDVirtualKey(virtualKey, keyDown) != KERN_SUCCESS) {
612 LOG_WARN("fail to post hid event");
613 postKeyboardKey(virtualKey, keyDown);
614 }
615
616 break;
617 }
618
619 case Keystroke::KeyType::Group: {
620 int32_t group = keystroke.m_data.m_group.m_group;
621 if (!keystroke.m_data.m_group.m_restore) {
622 if (keystroke.m_data.m_group.m_absolute) {
623 LOG_DEBUG1(" group %d", group);
624 setGroup(group);
625 } else {
626 LOG_DEBUG1(" group %+d", group);
627 setGroup(getEffectiveGroup(pollActiveGroup(), group));
628 }
629
630 if (pollActiveGroup() != group) {
631 LOG_WARN("failed to set new keyboard layout");
632 }
633 }
634 break;
635 }
636 }
637}
638
639void OSXKeyState::getKeyMapForSpecialKeys(deskflow::KeyMap &keyMap, int32_t group) const
640{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected