Mahou: [Bug] Don't work DoubleShift hotkey in external program

Created on 4 Mar 2017  ·  4Comments  ·  Source: BladeMight/Mahou

1. Summary

В программе QTranslate не работает сочетание горячих клавиш DoubleShift. Проблема появилась только в версии 2.0.0.5.

2. Expected behavior

Если Mahou деактивирован у меня, при выделении текста и нажатии DoubleShift успешно всплывает окно с переводом QTranslate.

3. Actual behavior

Если Mahou активирован, при нажатии DoubleShift ничего не происходит.

4. Settings

QTranslate 6.1: кликаю правой кнопкой по иконке QTranslate в трее → OptionsHotkeys → параметру Show popup window присвоено значение DoubleShift.

5. Environment

  • Mahou-v2.0.0.5
  • OS = [Microsoft Windows NT 6.2.9200.0]
  • x64 = [True]
  • .Net = [4.0.30319.42000]

    All installed layouts:

SashaCoolMakEn(4039181321)
SashaCoolMakRU(4039115801)
US(67699721)
SashaCoolMakEn(4039181321)
SashaCoolMakRU(4039115801)
US(67699721)

Mahou.ini:

!Unicode(✔), Mahou settings file
[Hotkeys]
HKCLKey=119
HKCLMods=Control
HKCSKey=145
HKCSMods=None
HKCLineKey=119
HKCLineMods=None
OnlyKeyLayoutSwicth=CapsLock
HKSymIgnKey=122
HKSymIgnMods=Shift + Control + Alt
HKConvertMore=122
HKConvertMoreMods=Shift + Control
ToggleMainWindow_Enabled=True
ToggleMainWindow_Double=False
ToggleMainWindow_Modifiers=Win + Control + Shift + Alt
ToggleMainWindow_Key=45
ConvertLastWord_Enabled=True
ConvertLastWord_Double=False
ConvertLastWord_Modifiers=Win + None
ConvertLastWord_Key=119
ConvertSelectedText_Enabled=True
ConvertSelectedText_Double=False
ConvertSelectedText_Modifiers=Control
ConvertSelectedText_Key=119
ConvertLastLine_Enabled=True
ConvertLastLine_Double=False
ConvertLastLine_Modifiers=None
ConvertLastLine_Key=119
ConvertLastWords_Enabled=False
ConvertLastWords_Double=False
ConvertLastWords_Modifiers=Shift
ConvertLastWords_Key=122
ToggleSymbolIgnoreMode_Enabled=False
ToggleSymbolIgnoreMode_Double=False
ToggleSymbolIgnoreMode_Modifiers=Shift + Control
ToggleSymbolIgnoreMode_Key=122
SelectedTextToTitleCase_Enabled=False
SelectedTextToTitleCase_Double=True
SelectedTextToTitleCase_Modifiers=Shift
SelectedTextToTitleCase_Key=0
SelectedTextToRandomCase_Enabled=False
SelectedTextToRandomCase_Double=True
SelectedTextToRandomCase_Modifiers=Shift
SelectedTextToRandomCase_Key=0
SelectedTextToSwapCase_Enabled=False
SelectedTextToSwapCase_Double=False
SelectedTextToSwapCase_Modifiers=Win + Control + Shift + Alt
SelectedTextToSwapCase_Key=19
SelectedTextTransliteration_Enabled=False
SelectedTextTransliteration_Double=False
SelectedTextTransliteration_Modifiers=Win +  
SelectedTextTransliteration_Key=45
ExitMahou_Enabled=True
ExitMahou_Double=False
ExitMahou_Modifiers=Win + Control + Shift + Alt
ExitMahou_Key=123
[Locales]
locale1uId=4039181321
locale1Lang=SashaCoolMakEn
locale2uId=4039115801
locale2Lang=SashaCoolMakRU
LANGUAGE=EN
[Functions]
IconVisibility=True
CycleMode=False
EmulateLayoutSwitch=False
ELSType=0
CSSwitch=True
BlockCTRL=False
RePress=True
EatOneSpace=False
ReSelect=True
SymIgnModeEnabled=false
MoreTries=false
TriesCount=5
DisplayLang=false
DLRefreshRate=50
ExperimentalCSSwitch=false
Snippets=false
DTTOnChange=false
ScrollTip=False
UpdatesEnabled=false
Logging=True
DiffLayoutColors=false
CrtDisplayLang=false
CrtDLRefreshRate=50
TrayFlags=True
CapsLockTimer=True
TrayIconVisible=True
ConvertSelectionLayoutSwitching=True
AddOneSpaceToLastWord=False
ConvertSelectionLayoutSwitchingPlus=False
StartupUpdatesCheck=False
BlockMahouHotkeysWithCtrl=False
SymbolIgnoreModeEnabled=false
DLForeColor=#FFFFFF
DLBackColor=#000000
[EnabledHotkeys]
HKCLEnabled=True
HKCSEnabled=True
HKCLineEnabled=True
HKSymIgnEnabled=true
[ExtCtrls]
UseExtCtrls=false
LCLocale=
LCLocaleName=
RCLocale=
RCLocaleName=
[Proxy]
ServerPort=
UserName=
Password=
[TTipUI]
Height=14
Width=24
Font=Georgia; 8pt
xpos=8
ypos=0
TransparentBack=false
DLForeColor=#FFFFFF
DLBackColor=#000000
CrtDLForeColor=#FFFFFF
CrtDLBackColor=#000000
L1DiffFGColor=#8B5FFF
L1DiffBGColor=#FFFFFF
L1DiffFont=Georgia; 8pt
L2DiffFGColor=#E1E100
L2DiffBGColor=#000000
L2DiffFont=Palatino Linotype; 9pt
CrtHeight=14
CrtWidth=24
CrtFont=Georgia; 8pt
Crtxpos=8
Crtypos=0
[DoubleKey]
Use=false
Delay=350
[FirstStart]
First=true
[Layouts]
SwitchBetweenLayouts=True
EmulateLayoutSwitch=False
EmulateLayoutSwitchType=Alt+Shift
ChangeToSpecificLayoutByKey=True
MainLayout1=SashaCoolMakEn(4039181321)
MainLayout2=SashaCoolMakRU(4039115801)
SpecificKey1=1
SpecificKey2=0
SpecificKey3=0
SpecificKey4=0
SpecificLayout1=Switch between layouts
SpecificLayout2=
SpecificLayout3=
SpecificLayout4=
[Appearence]
DisplayLangTooltipForMouse=False
DisplayLangTooltipForMouseOnChange=False
DisplayLangTooltipForCaret=False
DisplayLangTooltipForCaretOnChange=False
DifferentColorsForLayouts=False
Language=English
Layout1ForeColor=#000000
Layout1BackColor=#FFFFFF
Layout1TransparentBackColor=False
Layout1Font=Microsoft Sans Serif, 8.25pt
Layout1Height=14
Layout1Width=26
Layout1PositionX=8
Layout1PositionY=0
Layout2ForeColor=#000000
Layout2BackColor=#FFFFFF
Layout2TransparentBackColor=False
Layout2Font=Microsoft Sans Serif, 8.25pt
Layout2Height=14
Layout2Width=26
Layout2PositionX=8
Layout2PositionY=0
MouseLTForeColor=#000000
MouseLTBackColor=#FFFFFF
MouseLTTransparentBackColor=False
MouseLTFont=Microsoft Sans Serif, 8.25pt
MouseLTHeight=14
MouseLTWidth=26
MouseLTPositionX=8
MouseLTPositionY=0
CaretLTForeColor=#000000
CaretLTBackColor=#FFFFFF
CaretLTTransparentBackColor=False
CaretLTFont=Microsoft Sans Serif, 8.25pt
CaretLTHeight=14
CaretLTWidth=26
CaretLTPositionX=8
CaretLTPositionY=12
[Timings]
LangTooltipForMouseRefreshRate=25
LangTooltipForCaretRefreshRate=25
DoubleHotkey2ndPressWait=350
FlagsInTrayRefreshRate=100
ScrollLockStateRefreshRate=100
CapsLockDisableRefreshRate=100
SelectedTextGetMoreTries=False
SelectedTextGetMoreTriesCount=5
[Snippets]
SnippetsEnabled=False

Спасибо.

Bug

All 4 comments

Если Mahou активирован, при нажатии DoubleShift ничего не происходит.

Ну а что насчет самой проблемы она исправлена(но issue закрыть лучше после релиза) в последнем коммите, ну может Вы бы хотя бы попробовали версию по последниму коммиту?, судя по тому что я говорил об этом ранее, релизы я делаю не так часто как коммиты, так что на AppVeyor Вы можете скачать сборку последнего коммита:

  • выбераете сборку(release x86_x64 лучше всего)
  • потом вкладка ARTIFACTS справа посередине сайта.

Или если хотите можете сами собрать:

  • Клонируйте репу.
  • Запускайте BuildMahou.cmd
  • Готово. Файл Mahou.exe находятся в bin\Release_x86_x64

Ну да ладно Я могу подтвердить что проблема есть в 2.0.0.5 и происходит из-за СТРАННЕЙШЕГО БАГА КОТОРОГО Я ВИДЕЛ В WIN API, который появляется если вызывать PostMessage с WM_INPUT_LANGCHANGEREQUEST и ID'ом раскладки что в последствии КАКИМ-ТО ЧУДЕСНЫМ ОБРАЗОМ посылает отпуск ЛЕВОГО CONTROL, Я делал мнооооого тестов:

  • Сначала думал что это .Net, написал нативный переключатель раскладок PostMessag'ом на C(Си, не ++), но бесполезно LCtrl ВСЕ РАВНО КАКИМ-ТО ЧУДОМ отпускается(посылает сигнал отпуска как будто пользователь отпустил).
  • Пробовал SendMessage но функция никак не работала с WM_INPUT_LANGCHANGEREQUEST, пробовал с WM_INPUT_LANGCHANGE но там нужно не только ид раскладки ставить а и ид CharSet'ов которые, тоже не получить так просто но не в этом дело, дело в том что ОН ОПЯТЬ ПОСЫЛАЕТ ЭТОТ СИГНАЛ ОТПУСКА LCtrl!!!
  • ...(Не такие значительные)

P.S. Если бы КТО-ТО мог бы мне обьяснить что этот LCtrl забыл в PostMessage c WM_INPUT_LANGCHANGEREQUEST и ID'ом раскладки буду ОЧЕНЬ признателен, но такого не случиться... Т.к. этот баг навсегда останется в Windows не замеченным...

Т.к. этот баг навсегда останется в Windows не замеченным...

@BladeMight , Вы пробовали писать в Microsoft по поводу данного бага? Крупные корпорации по-разному относятся к багрепортам: если до Google достучаться крайне проблематично, то в Яндекс мне через несколько дней всегда отвечали. Может, в Microsoft тоже обратят внимание на проблему: в Open Source проектах от Microsoft фидбэк вроде как есть.

Ждём нового релиза на Chocolatey!

Спасибо.

@Kristinita Попробую написать, спасибо за совет.

Ждём нового релиза на Chocolatey!

Mahou v2.0.0.8 GitHub, Chocolatey

Только что проверил DoubleShift в QTranslate с Mahou-v2.0.0.8 включенным, работает, закрываю.

Was this page helpful?
0 / 5 - 0 ratings