https://bugs.freedesktop.org/show_bug.cgi?id=73711
--- Comment #9 from Ander Conselvan de Oliveira <[email protected]> --- (In reply to comment #8) > Thanks, the trace confirms. You never set an empty input region, so it > defaults to the whole surface. However, the mistake is not yours. > > The protocol specification for wl_pointer.set_cursor says: "The current and > pending input regions of the wl_surface are cleared, and > wl_surface.set_input_region is ignored until the wl_surface is no longer > used as the cursor." > > Therefore this is indeed a Weston bug: it should never pick the cursor > surface into focus. Indeed the problem is in Weston. The input region of the cursor surface is set to empty in pointer_cursor_surface_configure(). Since during the commit process this function is called before the pending input region is made current, it empties surface->pending.input instead of the pending input region instead of surface->input. But pointer_cursor_surface_configure() is also called from pointer_set_cursor() in order to map the cursor even if there isn't a subsequent attach and commit to the cursor surface. In that case, surface->input is never emptied, since the configure function emptied only the pending input region and there wasn't a commit that made it effective. Here's the sequence of requests that triggers the problem. [3269633.625] -> [email protected]_surface(new id wl_surface@11) [3269633.685] -> [email protected](wl_buffer@12, 0, 0) [3269633.704] -> [email protected](0, 0, 24, 24) [3269633.730] -> [email protected]() [3269633.739] -> [email protected]_cursor(0, wl_surface@11, 5, 0) -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ Wayland-bugs mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-bugs
