mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-26 14:41:25 +00:00
inputs-channel: Support more mouse buttons
Extend mouse button bits support. Allows to support up to 16 buttons. Partly based on a patch from Kevin Pouget (RED_MOUSE_BUTTON_STATE_TO_AGENT macro, updated on new protocol constants). Signed-off-by: Frediano Ziglio <freddy77@gmail.com> Acked-by: Kevin Pouget <kpouget@redhat.com>
This commit is contained in:
parent
2899fd91fb
commit
8bb90e55aa
@ -117,15 +117,16 @@ const VDAgentMouseState *InputsChannel::get_mouse_state()
|
||||
return &mouse_state;
|
||||
}
|
||||
|
||||
#define RED_MOUSE_STATE_TO_LOCAL(state) \
|
||||
((state & SPICE_MOUSE_BUTTON_MASK_LEFT) | \
|
||||
((state & SPICE_MOUSE_BUTTON_MASK_MIDDLE) << 1) | \
|
||||
// middle and right states are inverted
|
||||
// all buttons from SPICE_MOUSE_BUTTON_MASK_SIDE are mapped a bit higher
|
||||
// to avoid conflicting with some internal Qemu bit
|
||||
#define RED_MOUSE_STATE_TO_LOCAL(state) \
|
||||
((state & SPICE_MOUSE_BUTTON_MASK_LEFT) | \
|
||||
((state & (SPICE_MOUSE_BUTTON_MASK_MIDDLE|0xffe0)) << 1) | \
|
||||
((state & SPICE_MOUSE_BUTTON_MASK_RIGHT) >> 1))
|
||||
|
||||
#define RED_MOUSE_BUTTON_STATE_TO_AGENT(state) \
|
||||
(((state & SPICE_MOUSE_BUTTON_MASK_LEFT) ? VD_AGENT_LBUTTON_MASK : 0) | \
|
||||
((state & SPICE_MOUSE_BUTTON_MASK_MIDDLE) ? VD_AGENT_MBUTTON_MASK : 0) | \
|
||||
((state & SPICE_MOUSE_BUTTON_MASK_RIGHT) ? VD_AGENT_RBUTTON_MASK : 0))
|
||||
// mouse button constants are defined to be off-one between agent and SPICE protocol
|
||||
#define RED_MOUSE_BUTTON_STATE_TO_AGENT(state) ((state) << 1)
|
||||
|
||||
void InputsChannel::activate_modifiers_watch()
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user