mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
keyboard modifier state - client implementation
This commit is contained in:
@ -3,12 +3,18 @@ import { Member } from '~/neko/types'
|
||||
import { EVENT } from '~/neko/events'
|
||||
import { accessor } from '~/store'
|
||||
|
||||
const keyboardModifierState =
|
||||
(capsLock: boolean, numLock: boolean, scrollLock: boolean) =>
|
||||
Number(capsLock) + 2*Number(numLock) + 4*Number(scrollLock)
|
||||
|
||||
export const namespaced = true
|
||||
|
||||
export const state = () => ({
|
||||
id: '',
|
||||
clipboard: '',
|
||||
locked: false,
|
||||
|
||||
keyboardModifierState: -1,
|
||||
})
|
||||
|
||||
export const getters = getterTree(state, {
|
||||
@ -36,6 +42,10 @@ export const mutations = mutationTree(state, {
|
||||
state.clipboard = clipboard
|
||||
},
|
||||
|
||||
setKeyboardModifierState(state, { capsLock, numLock, scrollLock }) {
|
||||
state.keyboardModifierState = keyboardModifierState(capsLock, numLock, scrollLock)
|
||||
},
|
||||
|
||||
setLocked(state, locked: boolean) {
|
||||
state.locked = locked
|
||||
},
|
||||
@ -44,6 +54,7 @@ export const mutations = mutationTree(state, {
|
||||
state.id = ''
|
||||
state.clipboard = ''
|
||||
state.locked = false
|
||||
state.keyboardModifierState = -1
|
||||
},
|
||||
})
|
||||
|
||||
@ -140,6 +151,15 @@ export const actions = actionTree(
|
||||
}
|
||||
|
||||
$client.sendMessage(EVENT.CONTROL.KEYBOARD, { layout: accessor.settings.keyboard_layout })
|
||||
},
|
||||
|
||||
syncKeyboardModifierState({ state, getters }, { capsLock, numLock, scrollLock }) {
|
||||
if (state.keyboardModifierState === keyboardModifierState(capsLock, numLock, scrollLock)) {
|
||||
return ;
|
||||
}
|
||||
|
||||
accessor.remote.setKeyboardModifierState({ capsLock, numLock, scrollLock })
|
||||
$client.sendMessage(EVENT.CONTROL.KEYBOARD, { capsLock, numLock, scrollLock })
|
||||
}
|
||||
},
|
||||
)
|
||||
|
Reference in New Issue
Block a user