Перехват alt не работает в Chrome
Проблема/описание запроса
В браузере Chrome при нажатии alt выделяется кнопка меню браузера. В Opera по нажатию alt меню браузера раскрывается. Однако, в Opera сочетание клавиш alt+pause/break, которое у меня используется Mahou для функции "Выделенные слова в оБРАТНЫЙ регистр", работает, а в Chrome - нет.
Алгоритм воспроизведения проблемы
- Включить в Mahou сочетание клавиш alt+pause/break для функции "Выделенные слова в оБРАТНЫЙ регистр"
- В браузере Chrome открыть любой сайт где есть поле для ввода текста
- Ввести текст в поле для ввода, выделить этот текст и нажать alt+pause/break (функция Mahou не сработает)
Важно: функция Mahou работает для текста в адресной строке браузера Chrome, потому что когда фокус на адресной строке, клавиша alt теряет функционал.
Отладочная информация
Версия Chrome: 85.0.4183.121 (не новейшая)
Mahou:
Environment info
- Mahou 2.9.0.1-dev
- OS = [Microsoft Windows NT 6.2.9200.0]
- x64 = [True]
- .Net = [4.0.30319.42000]
All installed layouts
Русская(68748313) США(67699721)
Mahou.ini
[Hidden]
AS_IngoreLSTimeout=5000
AS_IngoreRules=SWMCLT
AS_IngoreLS=false
AS_IngoreDel=false
AS_IngoreBack=false
__setlayout_ONLYWM=false
__setlayout_FORCED=false
onlyAutoSwitchExcluded=
onlySnippetsExcluded=
__selection_nomouse=false
ReSelectCustoms=tTRSULCN
AutoCopyTranslation=
ChangeLayoutOnTrayLMB=false
DisableMemoryFlush=false
ToggleAutoSwitchHK=
AutoRestartMins=0
NCS_tray=false
NCS=NCS
__selection=false
CycleCaseReset=false
CycleCaseOrder=TULSR
LibreCtrlAltShiftV=false
[Sync]
BLast=
RLast=
RBools=1|1|1|1|0|0
BBools=0|1|0|0|0|0
[FirstStart]
First=False
[Functions]
WriteInputHistoryHourly=false
WriteInputHistoryByDate=false
AutoStartAsAdmin=False
TrayIconVisible=True
ConvertSelectionLayoutSwitching=True
ReSelect=False
RePress=False
AddOneSpaceToLastWord=True
AddOneEnterToLastWord=True
ConvertSelectionLayoutSwitchingPlus=False
ScrollTip=False
StartupUpdatesCheck=False
SilentUpdate=False
Logging=False
CapsLockTimer=False
TrayFlags=False
BlockMahouHotkeysWithCtrl=False
SymbolIgnoreModeEnabled=false
MCDServerSupport=False
OneLayoutWholeWord=True
GuessKeyCodeFix=False
AppDataConfigs=False
RemapCapslockAsF18=False
UseJKL=True
ReadOnlyNA=False
WriteInputHistory=False
WriteInputHistoryBackSpaceType=0
TrayText=True
[Layouts]
SwitchBetweenLayouts=True
OneLayout=True
EmulateLayoutSwitch=False
EmulateLayoutSwitchType=Alt+Shift
ChangeToSpecificLayoutByKey=True
MainLayout1=Русская(68748313)
MainLayout2=США(67699721)
SpecificKey1=5
SpecificKey2=0
SpecificKey3=0
SpecificKey4=0
SpecificLayout1=Переключать между раскладками
SpecificLayout2=
SpecificLayout3=
SpecificLayout4=
SpecificKeysType=0
SpecificKeySets=set_0
QWERTZfix=False
[PersistentLayout]
OnlyOnWindowChange=False
ChangeOnlyOnce=False
ActivateForLayout1=False
ActivateForLayout2=False
Layout1CheckInterval=50
Layout2CheckInterval=50
Layout1Processes=devenv.exe wdexpress.exe
Layout2Processes=notepad++.exe winword.exe
[Appearence]
DisplayLangTooltipForMouse=False
DisplayLangTooltipForMouseOnChange=False
DisplayLangTooltipForCaret=False
DisplayLangTooltipForCaretOnChange=False
DifferentColorsForLayouts=False
MouseLTAlways=False
Language=Русский
Layout1ForeColor=White
Layout1BackColor=Gray
Layout1TransparentBackColor=False
Layout1Font=Microsoft Sans Serif; 8,25pt
Layout1Height=14
Layout1Width=26
Layout1PositionX=8
Layout1PositionY=0
Layout2ForeColor=White
Layout2BackColor=Gray
Layout2TransparentBackColor=False
Layout2Font=Microsoft Sans Serif; 8,25pt
Layout2Height=14
Layout2Width=26
Layout2PositionX=8
Layout2PositionY=0
MouseLTForeColor=#000000
MouseLTBackColor=#FFFFFF
MouseLTFont=Georgia; 8pt
MouseLTHeight=14
MouseLTWidth=26
MouseLTPositionX=8
MouseLTPositionY=0
CaretLTForeColor=#000000
CaretLTBackColor=#FFFFFF
MouseLTTransparentBackColor=False
CaretLTTransparentBackColor=False
CaretLTFont=Georgia; 8pt
CaretLTHeight=14
CaretLTWidth=26
CaretLTPositionX=8
CaretLTPositionY=12
MCDS_Pos_X=58
MCDS_Pos_Y=13
MCDS_Top=60
MCDS_Bottom=45
MouseLTUseFlags=False
CaretLTUseFlags=False
Layout1LTText=
Layout2LTText=
MouseLTUpperArrow=False
CaretLTUpperArrow=False
WindowsMessages=True
[Timings]
ConvertSWLinExcl=False
UsePasteInCS=False
ExcludeCaretLD=false
DelayAfterBackspaces=100
UseDelayAfterBackspaces=False
LangTooltipForMouseRefreshRate=25
LangTooltipForCaretRefreshRate=25
DoubleHotkey2ndPressWait=350
FlagsInTrayRefreshRate=100
ScrollLockStateRefreshRate=100
CapsLockDisableRefreshRate=100
SelectedTextGetMoreTries=False
SelectedTextGetMoreTriesCount=5
ExcludedPrograms=LA.exe SomeProg.exe
ChangeLayoutInExcluded=True
LangTooltipForMouseSkipMessages=5
[Snippets]
SnippetsEnabled=True
SpaceAfter=True
SwitchToGuessLayout=False
SnippetExpandKey=Space
[AutoSwitch]
Enabled=False
SpaceAfter=True
SwitchToGuessLayout=True
DownloadInZip=False
[Hotkeys]
ShowCMenuUnderMouse_Mods=
SelectedTextToCustomConv_Mods=
SelectedTextToCustomConv_Enabled=False
SelectedTextToCustomConv_Double=False
SelectedTextToCustomConv_Modifiers=
SelectedTextToCustomConv_Key=0
ShowCMenuUnderMouse_Enabled=False
ShowCMenuUnderMouse_Double=False
ShowCMenuUnderMouse_Modifiers=
ShowCMenuUnderMouse_Key=0
CycleCase_Enabled=False
CycleCase_Double=False
CycleCase_Modifiers=Shift
CycleCase_Key=114
SelectedToUpper_Enabled=False
SelectedToUpper_Double=False
SelectedToUpper_Modifiers=Win +
SelectedToUpper_Key=90
SelectedToLower_Enabled=False
SelectedToLower_Double=False
SelectedToLower_Modifiers=Win
SelectedToLower_Key=88
ToggleMainWindow_Enabled=False
ToggleMainWindow_Double=False
ToggleMainWindow_Modifiers=Shift + Control
ToggleMainWindow_Key=191
ConvertLastWord_Enabled=True
ConvertLastWord_Double=False
ConvertLastWord_Modifiers=
ConvertLastWord_Key=19
ConvertSelectedText_Enabled=True
ConvertSelectedText_Double=False
ConvertSelectedText_Modifiers=Shift
ConvertSelectedText_Key=19
ConvertLastLine_Enabled=False
ConvertLastLine_Double=False
ConvertLastLine_Modifiers=Shift
ConvertLastLine_Key=19
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=Alt
SelectedTextToRandomCase_Key=0
SelectedTextToSwapCase_Enabled=True
SelectedTextToSwapCase_Double=False
SelectedTextToSwapCase_Modifiers=Alt
SelectedTextToSwapCase_Key=19
SelectedTextTransliteration_Enabled=False
SelectedTextTransliteration_Double=False
SelectedTextTransliteration_Modifiers=Win +
SelectedTextTransliteration_Key=191
ExitMahou_Enabled=False
ExitMahou_Double=False
ExitMahou_Modifiers=Win + Control + Shift + Alt
ExitMahou_Key=123
RestartMahou_Enabled=False
RestartMahou_Modifiers=Win + Shift + Alt
RestartMahou_Key=33
ToggleLangPanel_Enabled=False
ToggleLangPanel_Double=False
ToggleLangPanel_Modifiers=Shift
ToggleLangPanel_Key=120
ShowSelectionTranslate_Enabled=False
ShowSelectionTranslate_Double=False
ShowSelectionTranslate_Modifiers=Alt
ShowSelectionTranslate_Key=84
ToggleMahou_Enabled=False
ToggleMahou_Double=False
ToggleMahou_Modifiers=Win + Shift
ToggleMahou_Key=112
[LangPanel]
Display=False
Transparency=90
RefreshRate=25
Position=X0 Y0
ForeColor=#000000
BackColor=#FFFFFF
Font=Microsoft Sans Serif; 8,25pt
BorderColor=#8B5FFF
BorderAeroColor=True
UpperArrow=True
[Updates]
Delay=5
Channel=LatestCommit(Beta)
LatestCommit=aa0c9d3
[Sounds]
CustomSound2=
UseCustomSound2=False
OnLayoutSwitch2=True
OnConvertLast2=False
OnSnippets2=True
OnAutoSwitch2=False
CustomSound=
UseCustomSound=False
OnLayoutSwitch=False
OnConvertLast=True
OnSnippets=False
OnAutoSwitch=True
Enabled=False
[TranslatePanel]
Transcription=False
UseNA=True
UseGS=False
LanguageSets=set_1/auto/ru|set_2/auto/en
BG=WhiteSmoke
BorderC=Silver
FG=Black
Transparency=100
BorderAero=True
OnDoubleClick=False
Enabled=False
TitleFont=Segoe UI; 15pt
TextFont=Microsoft Sans Serif; 11,25pt
</details>
Шпионы из Punto как-то решили эту проблему давным давно, у них рабоатет все ок. Я пока перебил на CTRL+Pause
@K0nfy @Kein Добавил исправление в df8b167, теперь после отпускания модификаторов горячей клавиши будет "отключать" меню симуляцией нажатия Esc.
после отпускания модификаторов горячей клавиши
Если их не отпускать тогда ввод будет Alt+{символы}, поэтому для всех горячих клавиш конвертации ввода/текста используется "отпускание модификаторов".
"отключать" меню симуляцией нажатия Esc
Такое себе. Не решило проблему для инпутов на том же гитхабе. А ещё, ESC удаляет текст из адресной строки хрома и из поисковой строки на стандартной новой вкладке.
Не решило проблему для инпутов на том же гитхабе
Странно, у меня работает теперь нормально...

ESC удаляет текст из адресной строки хрома
Ну тут нужно будет еще что-то придумать....
@K0nfy Придумал еще вариант: 959f119, используя скрытое окно меняем фокус окна на него, и посылаем отпуск ALT клавиш, поэтому Chrome не будет получать событие отпуска клавиши Alt и, таким образом не будет вызывать фокус его "меню"
Теперь всё отлично. В адресной строке только до сих пор глючит если пробовать менять ссылку, но это уже не стоит внимания. Вряд ли кто-то будет менять регистр ссылок полностью.
https://youtu.be/E_eiZCF7D8Q
Странно... у меня такого с адресной строкой не происходит:
(при второй конвертации выглядит будто проскакивает, это ScreenToGif так сократил, в оригинале был "ввод" как и в первый раз)
Может в новом Chrome что-то..? (лично у меня стоит: 74.0.3729.169)
Может в новом Chrome что-то..?
Да. Они добавили это:

И хоть глюк происходит вне зависимости от того в каком состоянии настройка, мне кажется это обновление всё равно может влиять.


