Skip to content

Commit e1e206e

Browse files
committed
don't do caret update checks without layout or caps state changes
1 parent 075c746 commit e1e206e

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

lib/LanguageIndicatorCaret.ahk

+21-13
Original file line numberDiff line numberDiff line change
@@ -166,13 +166,14 @@ InitCaretState() {
166166
}
167167

168168
UpdateCaretState() {
169-
static last_changed_locale := 0
169+
static last_changed_locale := 0, last_changed_capslock := 0
170170
global state
171171
lang_id := 0x0000
172172
state.prev.locale := state.locale
173173
state.locale := GetInputLocaleIndex(&lang_id)
174-
if (state.locale != state.prev.locale)
175-
|| (state.locale != last_changed_locale){
174+
is_locale_changed := (state.locale != state.prev.locale )
175+
|| (state.locale != last_changed_locale)
176+
if (is_locale_changed) {
176177
last_changed_locale := state.locale
177178
set_lang := False
178179
for i, l_id in localesArray {
@@ -192,19 +193,26 @@ UpdateCaretState() {
192193

193194
state.prev.capslock := state.capslock
194195
state.capslock := GetCapslockState()
196+
is_caps_changed := (state.capslock != state.prev.capslock )
197+
|| (state.capslock != last_changed_capslock)
198+
if (is_caps_changed) {
199+
last_changed_capslock := state.capslock
200+
}
195201

196-
if CaretsFolderExist() {
197-
state.prev.caretMarkImage := state.caretMarkImage
198-
state.caretMarkImage := GetCaretMarkFile()
202+
if (is_caps_changed || is_locale_changed) {
203+
if CaretsFolderExist() {
204+
state.prev.caretMarkImage := state.caretMarkImage
205+
state.caretMarkImage := GetCaretMarkFile()
199206

200-
state.prev.caretMarkName := state.caretMarkName
201-
state.caretMarkName := ""
202-
} else {
203-
state.prev.caretMarkName := state.caretMarkName
204-
state.caretMarkName := GetCaretMarkName(state.locale, state.capslock)
207+
state.prev.caretMarkName := state.caretMarkName
208+
state.caretMarkName := ""
209+
} else {
210+
state.prev.caretMarkName := state.caretMarkName
211+
state.caretMarkName := GetCaretMarkName(state.locale, state.capslock)
205212

206-
state.prev.caretMarkImage := state.caretMarkImage
207-
state.caretMarkImage := ""
213+
state.prev.caretMarkImage := state.caretMarkImage
214+
state.caretMarkImage := ""
215+
}
208216
}
209217
}
210218

0 commit comments

Comments
 (0)