Add auto-type {CLEARFIELD} on mac

This commit is contained in:
Weslly 2017-03-23 10:36:52 -03:00
parent 86e88c18b0
commit 32fe0493c4
2 changed files with 28 additions and 0 deletions

View File

@ -488,3 +488,30 @@ void AutoTypeExecutorMac::execKey(AutoTypeKey* action)
m_platform->sendKey(action->key, false);
usleep(25 * 1000);
}
void execClearFieldHelper(uint16 keyCode, bool isKeyDown, bool modifier = false)
{
CGEventRef keyEvent = ::CGEventCreateKeyboardEvent(nullptr, keyCode, isKeyDown);
if (keyEvent != nullptr) {
if (modifier) {
::CGEventSetFlags(keyEvent, kCGEventFlagMaskCommand);
}
::CGEventPost(kCGSessionEventTap, keyEvent);
::CFRelease(keyEvent);
}
usleep(25 * 1000);
}
void AutoTypeExecutorMac::execClearField(AutoTypeClearField* action = nullptr)
{
Q_UNUSED(action);
execClearFieldHelper(kVK_ANSI_A, true, true);
execClearFieldHelper(kVK_ANSI_A, false);
execClearFieldHelper(kVK_Command, false);
execClearFieldHelper(kVK_Delete, true);
execClearFieldHelper(kVK_Delete, false);
usleep(25 * 1000);
}

View File

@ -73,6 +73,7 @@ public:
void execChar(AutoTypeChar* action) override;
void execKey(AutoTypeKey* action) override;
void execClearField(AutoTypeClearField* action) override;
private:
AutoTypePlatformMac* const m_platform;