mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-01-08 12:24:55 +00:00
Count display channels for tablet mode check
Having a single QXL interface is not enough, there can be other (e.g. streaming) display channels that make the tablet unusable. Add a check for the number of display channels also being equal to 1. We still need the check for QXL interaces, because the tablet only works with QXL. Signed-off-by: Lukáš Hrázký <lhrazky@redhat.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
This commit is contained in:
parent
4f08f50de9
commit
145362b046
@ -651,9 +651,20 @@ static void reds_update_mouse_mode(RedsState *reds)
|
||||
{
|
||||
int allowed = 0;
|
||||
int qxl_count = g_list_length(reds->qxl_instances);
|
||||
int display_channel_count = 0;
|
||||
RedChannel *channel;
|
||||
|
||||
GLIST_FOREACH(reds->channels, RedChannel, channel) {
|
||||
uint32_t this_type;
|
||||
g_object_get(channel, "channel-type", &this_type, NULL);
|
||||
if (this_type == SPICE_CHANNEL_DISPLAY) {
|
||||
++display_channel_count;
|
||||
}
|
||||
}
|
||||
|
||||
if ((reds->config->agent_mouse && reds->vdagent) ||
|
||||
(inputs_channel_has_tablet(reds->inputs_channel) && qxl_count == 1)) {
|
||||
(inputs_channel_has_tablet(reds->inputs_channel) &&
|
||||
qxl_count == 1 && display_channel_count == 1)) {
|
||||
allowed = reds->dispatcher_allows_client_mouse;
|
||||
}
|
||||
if (allowed == reds->is_client_mouse_allowed) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user