mirror of
https://github.com/m1k1o/neko.git
synced 2025-05-29 08:57:09 +02:00
Add Xorg modifiers (#57)
* implement additional modifiers to xorg. * xorg modifiers to API. * update modifiers api & add ws. * scroll pos rename to delta and add ctrl key.
This commit is contained in:
parent
a392163819
commit
4da7869e70
13 changed files with 166 additions and 89 deletions
|
@ -74,12 +74,18 @@ func (h *MessageHandlerCtx) controlMove(session types.Session, payload *message.
|
|||
return nil
|
||||
}
|
||||
|
||||
func (h *MessageHandlerCtx) controlScroll(session types.Session, payload *message.ControlPos) error {
|
||||
func (h *MessageHandlerCtx) controlScroll(session types.Session, payload *message.ControlScroll) error {
|
||||
if err := h.controlRequest(session); err != nil && !errors.Is(err, ErrIsAlreadyTheHost) {
|
||||
return err
|
||||
}
|
||||
|
||||
h.desktop.Scroll(payload.X, payload.Y)
|
||||
// TOOD: remove this once the client is fixed
|
||||
if payload.DeltaX == 0 && payload.DeltaY == 0 {
|
||||
payload.DeltaX = payload.X
|
||||
payload.DeltaY = payload.Y
|
||||
}
|
||||
|
||||
h.desktop.Scroll(payload.DeltaX, payload.DeltaY, payload.ControlKey)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ func (h *MessageHandlerCtx) Message(session types.Session, data types.WebSocketM
|
|||
return h.controlMove(session, payload)
|
||||
})
|
||||
case event.CONTROL_SCROLL:
|
||||
payload := &message.ControlPos{}
|
||||
payload := &message.ControlScroll{}
|
||||
err = utils.Unmarshal(payload, data.Payload, func() error {
|
||||
return h.controlScroll(session, payload)
|
||||
})
|
||||
|
|
|
@ -12,10 +12,7 @@ func (h *MessageHandlerCtx) keyboardMap(session types.Session, payload *message.
|
|||
return errors.New("is not the host")
|
||||
}
|
||||
|
||||
return h.desktop.SetKeyboardMap(types.KeyboardMap{
|
||||
Layout: payload.Layout,
|
||||
Variant: payload.Variant,
|
||||
})
|
||||
return h.desktop.SetKeyboardMap(payload.KeyboardMap)
|
||||
}
|
||||
|
||||
func (h *MessageHandlerCtx) keyboardModifiers(session types.Session, payload *message.KeyboardModifiers) error {
|
||||
|
@ -23,10 +20,6 @@ func (h *MessageHandlerCtx) keyboardModifiers(session types.Session, payload *me
|
|||
return errors.New("is not the host")
|
||||
}
|
||||
|
||||
h.desktop.SetKeyboardModifiers(types.KeyboardModifiers{
|
||||
NumLock: payload.NumLock,
|
||||
CapsLock: payload.CapsLock,
|
||||
})
|
||||
|
||||
h.desktop.SetKeyboardModifiers(payload.KeyboardModifiers)
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue