Hi

On Mon, Jul 22, 2024 at 3:58 PM Sergio Lopez Pascual <s...@redhat.com> wrote:

> Marc-André Lureau <marcandre.lur...@gmail.com> writes:
>
> > Hi
> >
> > Adding Sergio in CC, who wrote that code. I don't have means to test it,
> > which also limits my understanding and ability to check this.
> >
> > On Sat, Jul 20, 2024 at 11:58 PM ~katharine_chui <
> katharine_c...@git.sr.ht>
> > wrote:
> >
> >> From: Katharine Chui <kwchu...@connect.ust.hk>
> >>
> >> There seems to be no guarantee as to how GdkEventTouch.sequence
> >> would progress https://docs.gtk.org/gdk3/struct.EventTouch.html
> >>
> >>
> > True, we also abuse the internal implementation which stores low integers
> > in the sequence pointer.
> >
> > In the case of steam gamescope session, touch input would
> >> increment the number every touch, resulting in all touch inputs
> >> after the 10th touch to get dropped
> >>
> >> ...
> >> qemu: warning: Unexpected touch slot number:  10 >= 10
> >> qemu: warning: Unexpected touch slot number:  11 >= 10
> >> qemu: warning: Unexpected touch slot number:  12 >= 10
> >> qemu: warning: Unexpected touch slot number:  13 >= 10
> >> qemu: warning: Unexpected touch slot number:  14 >= 10
> >> ...
> >>
> >> Reuse the slots on gtk to avoid that
> >>
> >
> > But doing modulo like this, there is a chance of conflict with already
> used
> > slots.
> >
> > Maybe it's time for a better gtk implementation which would handle a
> proper
> > sequence pointer to slot mapping.
>
> The problem with slots vs. sequences is that, from what I can see,
> there's not way to obtain the slot number from EventTouch, which makes
> me thing we're a little to high in the abstraction layer to emulate
> multi-touch properly. And with GTK4 it seems to be even worse, because
> it tries harder to process gestures on its own (we need them to be
> processed by the guest instead).
>
> Under some compositors, we were lucky enough that indeed slots ==
> sequences, so we could actually pass those events as that and have the
> guest process and recognize simple gestures (i.e. pinching) properly.
>
> The "right" solution would be finding a way to operate at a lower level
> than what EventTouch provides us today, but I don't know how feasible is
> that from within the limits of the ui/gtk3.c.
>
> In case that's not possible, the modulo workaround is probably as good
> as we can get.
>

Can't we map the sequence pointer to a (reusable) counter? So up to
max-slots sequences could be mapped uniquely and we would reject events
that do not fit within max-slots.


-- 
Marc-André Lureau

Reply via email to