On Wed, 6 Jan 2021 12:45:22 -0800
Waris Boonyasiriwat <waris.boonyasiri...@gmail.com> wrote:

> Hi Simon,
> 
> I grabbed one just now - the debug trace is attached in this e-mail. For
> context, I ran an app that kept changing the cursor shape from arrow to
> I-beam, to pointer, etc, back and forth.

Hi,

I hacked weston-clickdot to use a cursor image with hotspot on the
bottom edge, and it works fine. The one difference I see compared to
your trace is that weston demos first commit the surface and then set
it as the pointer cursor.

I also hacked the clickdot demo to set the pointer role before
committing the surface, like in your trace, and it still works.

If you do this change in clickdot:

--- a/clients/clickdot.c
+++ b/clients/clickdot.c
@@ -240,7 +240,8 @@ motion_handler(struct widget *widget,
        cursor_timeout_reset(clickdot);
        clickdot->cursor_timeout_input = input;
 
-       return CURSOR_BLANK;
+       return CURSOR_BOTTOM;
 }

does the hotspot move correctly to the middle bottom of the cursor
image? You can tell by looking at where the line gets drawn (it's a
simple drawing app).

If clickdot works ok, but your GLFW app does not, then there is still
some difference in the protocol sequence.

If clickdot has wrong hotspot, then it's something else. What backend
did you try Weston with? If DRM, how about X11 or Wayland backends?

If both weston/DRM and Mutter have broken hotspot, but weston/X11 or
weston/wayland have correct hotspot for all apps, then we might have to
look at the KMS driver.

Are you using a virtual machine for testing, btw.?


Thanks,
pq

Attachment: pgpLHQAA4UC6_.pgp
Description: OpenPGP digital signature

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to