Стрелка при верхнем регистре работает некорректно в некоторых случаях
Проблема/описание запроса
При использовании опции "Стрелка при верхнем регистре." (Вид -> Возле мышки/каретки):
- стрелка не отображается сразу после включения Caps Lock. При этом, после ввода любого цифро-буквенного символа стрелка отбражается, а после ввода иных символов исчезает;
- в некоторых случаях стрелка продолжает отображаться при смене языка по Ctrl/Alt+Shift (рискну предположить, что если отпустить сначала одну клавишу, чтобы язык поменялся, а потом - вторую клавишу в момент, когда меняется флаг языка). После повторного нажатия Shift стрелка пропадает.
Ожидаемое поведение (только при сообщении об ошибках)
- При включении Caps Lock стрелка отображается постоянно.
- Стрелка не отображается, если Caps Lock выключен, а Shift не зажат.
Информация окружения/Отладочная информация
MAHOU DEBUG INFO
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) Японская(68224017)
Mahou.ini
[Hidden]
NCS_tray=true
NCS=N
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
__selection=false
CycleCaseReset=false
CycleCaseOrder=TULSR
LibreCtrlAltShiftV=false
ReSelectCustoms=tTRSULCN
AutoCopyTranslation=
ChangeLayoutOnTrayLMB=false
DisableMemoryFlush=false
ToggleAutoSwitchHK=
AutoRestartMins=0
[FirstStart]
First=False
[Functions]
WriteInputHistoryHourly=false
WriteInputHistoryByDate=false
AutoStartAsAdmin=False
TrayIconVisible=True
ConvertSelectionLayoutSwitching=False
ReSelect=False
RePress=False
AddOneSpaceToLastWord=False
AddOneEnterToLastWord=False
ConvertSelectionLayoutSwitchingPlus=False
ScrollTip=False
StartupUpdatesCheck=True
SilentUpdate=True
Logging=False
CapsLockTimer=False
TrayFlags=True
BlockMahouHotkeysWithCtrl=False
SymbolIgnoreModeEnabled=false
MCDServerSupport=False
OneLayoutWholeWord=False
GuessKeyCodeFix=False
AppDataConfigs=False
RemapCapslockAsF18=False
UseJKL=True
ReadOnlyNA=True
WriteInputHistory=False
WriteInputHistoryBackSpaceType=0
TrayText=False
[Layouts]
SwitchBetweenLayouts=True
OneLayout=False
EmulateLayoutSwitch=False
EmulateLayoutSwitchType=Alt+Shift
ChangeToSpecificLayoutByKey=True
MainLayout1=Русская(68748313)
MainLayout2=США(67699721)
SpecificKey1=11
SpecificKey2=10
SpecificKey3=0
SpecificKey4=0
SpecificLayout1=Переключать между раскладками
SpecificLayout2=Японская(68224017)
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=True
DisplayLangTooltipForMouseOnChange=False
DisplayLangTooltipForCaret=True
DisplayLangTooltipForCaretOnChange=False
DifferentColorsForLayouts=False
MouseLTAlways=False
Language=Русский
Layout1ForeColor=#000000
Layout1BackColor=#FFFFFF
Layout1TransparentBackColor=False
Layout1Font=Georgia; 8pt
Layout1Height=14
Layout1Width=26
Layout1PositionX=8
Layout1PositionY=0
Layout2ForeColor=#000000
Layout2BackColor=#FFFFFF
Layout2TransparentBackColor=False
Layout2Font=Georgia; 8pt
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=True
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=True
CaretLTUseFlags=True
Layout1LTText=
Layout2LTText=
MouseLTUpperArrow=True
CaretLTUpperArrow=True
WindowsMessages=True
[Timings]
UsePasteInCS=False
ExcludeCaretLD=false
ConvertSWLinExcl=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=False
LangTooltipForMouseSkipMessages=5
[Snippets]
SnippetsEnabled=False
SpaceAfter=False
SwitchToGuessLayout=False
SnippetExpandKey=Space
[AutoSwitch]
Enabled=False
SpaceAfter=True
SwitchToGuessLayout=True
DownloadInZip=True
[Hotkeys]
ShowCMenuUnderMouse_Mods=
SelectedTextToCustomConv_Mods=
SelectedTextToCustomConv_Enabled=False
SelectedTextToCustomConv_Double=False
SelectedTextToCustomConv_Modifiers=
SelectedTextToCustomConv_Key=0
CycleCase_Enabled=False
CycleCase_Double=False
CycleCase_Modifiers=Shift
CycleCase_Key=114
ShowCMenuUnderMouse_Enabled=False
ShowCMenuUnderMouse_Double=False
ShowCMenuUnderMouse_Modifiers=
ShowCMenuUnderMouse_Key=0
ToggleMainWindow_Enabled=True
ToggleMainWindow_Double=False
ToggleMainWindow_Modifiers=Win + Control + Shift + Alt
ToggleMainWindow_Key=45
ConvertLastWord_Enabled=True
ConvertLastWord_Double=False
ConvertLastWord_Modifiers=
ConvertLastWord_Key=19
ConvertSelectedText_Enabled=True
ConvertSelectedText_Double=False
ConvertSelectedText_Modifiers=
ConvertSelectedText_Key=145
ConvertLastLine_Enabled=True
ConvertLastLine_Double=False
ConvertLastLine_Modifiers=Shift
ConvertLastLine_Key=19
ConvertLastWords_Enabled=True
ConvertLastWords_Double=False
ConvertLastWords_Modifiers=Shift
ConvertLastWords_Key=122
ToggleSymbolIgnoreMode_Enabled=True
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=False
SelectedTextToSwapCase_Double=False
SelectedTextToSwapCase_Modifiers=Win +
SelectedTextToSwapCase_Key=190
SelectedTextTransliteration_Enabled=False
SelectedTextTransliteration_Double=False
SelectedTextTransliteration_Modifiers=Win +
SelectedTextTransliteration_Key=191
SelectedToUpper_Enabled=False
SelectedToUpper_Double=False
SelectedToUpper_Modifiers=Win +
SelectedToUpper_Key=90
SelectedToLower_Enabled=False
SelectedToLower_Double=False
SelectedToLower_Modifiers=Win +
SelectedToLower_Key=88
ExitMahou_Enabled=True
ExitMahou_Double=False
ExitMahou_Modifiers=Win + Control + Shift + Alt
ExitMahou_Key=123
RestartMahou_Enabled=True
RestartMahou_Modifiers=Win + Shift + Alt
RestartMahou_Key=33
ToggleLangPanel_Enabled=True
ToggleLangPanel_Double=False
ToggleLangPanel_Modifiers=Shift
ToggleLangPanel_Key=120
ShowSelectionTranslate_Enabled=False
ShowSelectionTranslate_Double=True
ShowSelectionTranslate_Modifiers=Alt
ShowSelectionTranslate_Key=0
ToggleMahou_Enabled=True
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=b90217b
[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=#FFFFFF
BorderC=#F1F100
FG=#8B5FFF
Transparency=90
BorderAero=False
OnDoubleClick=False
Enabled=False
TitleFont=Segoe UI; 12pt
TextFont=Microsoft Sans Serif; 8,25pt
[Sync]
BLast=
RLast=
RBools=1|1|1|1|0|0
BBools=0|1|0|0|0|0
</details>
</details>
</details>
## Приложите журналы (logs) (если логирование было включено)
Приложите журнал со дня, когда проблема случилась, из папки **Logs**.
Ну в таком случае можно попробовать убрать "Использовать Сообщения Windows вместо таймеров." во вкладке "Вид", применить и настроить "Тайминги" как нужно, если необходимо.
Убрал опцию, поигрался с таймингами (ставил 1 и 1000) - "залипание" стрелки воспроизводится всё равно.
@HYBRID-BEING Исправил в 0c217ed
- Стрелка на каретке работает корректно. Стрелка на курсоре обновляется только если курсор наведён на текст (отображается подсказка). Если вкл/выкл Caps Lock, когда курсор не наведён на текст, то при последующем наведении на текст будет отбражаться предыдущее состояние. На рисунке курсор справа:
- "Залипание" всё ещё не исправлено. При включённом Caps Lock также воспроизводится (стрелка исчезает, при включённом Caps Lock). Кроме того, если стрелка "залипла" (в любом состоянии), нажатие на Caps Lock инвертирует индикатор.
У меня больше не воспроизводится:
(Сначала я просто включил Caps, потом попробовал Нажать Shift при включенном Caps, а потом наоборот)
Инвертирование больше не воспроизводится, а вот "залипание" иногда происходит. Потестировал ещё и у меня получается это воспроизвести при следующих действиях:
- Зажимаю Ctrl+Shift (или Alt+Shift);
- Отпускаю Ctrl (или Alt);
- Затем отпускаю Shift.
Если задержка между 2 и 3 большая баг не происходит. Если короткая - не всегда, но воспроизводится (не могу точно сказать, связанно ли это с обновлением флага/подсказки). Ещё раз попробовал поменять тайминги - и честно говоря не заметил, чтоб они вообще влияли на скорость обновления флага. Что 2с, что 100мс, разницы не увидел. Флажки "Только при смене." и "Всегда." сняты.
В ближайшее время попробую заснять экран с клавишами.
UPD:
@BladeMight
На GIF я пару раз воспроизвожу "залипание" стрелки, после залипания нажимаю 3 раза Caps Lock, снова воспроизвожу "залипание" стрелки (она исчезает при включённом Caps Lock), и, в конце, отвожу курсор от текстового поля и нажимаю Caps Lock.
