private bool handleExtensionMode(KbDllHookStruct kbDllHookStruct)
{
int code = -1;
if (kbDllHookStruct.vkCode == (int)Keys.Space || kbDllHookStruct.vkCode == (int)Keys.Enter)
{
extMode.resetExtensionMode();
return false;
}
else if (kbDllHookStruct.vkCode == (int)Keys.Back)
{
extMode.removeRangeTextAndRepositionCursor(extMode.getExtensionRange());
extMode.resetExtensionMode();
return false;
}
else
{
code = checkKeyCombination(kbDllHookStruct);
// if is correct key combination and is extension mode
if (code > -1 && extMode.getExtensionPos() != -1)
{
if (extensionBw == null)
{
extensionBw = new BackgroundWorker();
extensionBw.DoWork += extensionBgWork;
}
if (!extensionBw.IsBusy)
extensionBw.RunWorkerAsync(code);
return false;
}
else if (kbDllHookStruct.vkCode == (int)Keys.LControlKey || kbDllHookStruct.vkCode == (int)Keys.RControlKey ||
kbDllHookStruct.vkCode == (int)Keys.LMenu || kbDllHookStruct.vkCode == (int)Keys.RMenu ||
kbDllHookStruct.vkCode == (int)Keys.LShiftKey || kbDllHookStruct.vkCode == (int)Keys.RShiftKey)
{
return true;
}
else
{
if (extensionBw == null || !extensionBw.IsBusy)
{
extendSuggestionForm.fadeOut();
extMode.resetExtensionMode();
}
}
}
return true;
}