Hello, I am writing a Wayland client that acts as an OSD "overlay" on top of another application. This OSD overlay should not handle any pointer events -- these should "pass through" and be handled by the application below.
From the docs, wwl_surface::set_input_region looked promising: > Input events happening outside of this region will try the next surface in > the server surface stack. The compositor ignores the parts of the input > region that fall outside of the surface. [...] The initial value for an input > region is infinite. That means the whole surface will accept input. Setting > the pending input region has copy semantics, and the wl_region object can be > destroyed immediately. A NULL wl_region causes the input region to be set to > infinite. I am trying this: struct wl_region* region = wl_compositor_create_region(_glfw.wl.compositor); wl_surface_set_input_region(window->wl.surface, region); wl_region_destroy(region); However it doesn't seem to work -- pointer events do not seem to "pass through". Same problem is also reported here: https://github.com/glfw/glfw/pull/1568 Is this approach correct? Any hints on how to debug this? Best regards, Guillermo Rodriguez Garcia guille.rodrig...@gmail.com _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel