[Spice-devel] [PATCH spice] Count display channels for tablet mode check
Lukáš Hrázký
lhrazky at redhat.com
Thu Sep 20 16:24:01 UTC 2018
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 at redhat.com>
---
server/reds.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/server/reds.c b/server/reds.c
index 85043a88..4f890348 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -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) {
--
2.19.0
More information about the Spice-devel
mailing list