3883ba2a34
From the spec: > The wl_pointer.enter and wl_pointer.leave events are logical events > generated by the compositor and not the hardware. These events are > also grouped by a wl_pointer.frame. When a pointer moves from one > surface to another, a compositor should group the wl_pointer.leave > event within the same wl_pointer.frame. However, a client must not > rely on wl_pointer.leave and wl_pointer.enter being in the same > wl_pointer.frame. Compositor-specific policies may require the > wl_pointer.leave and wl_pointer.enter event being split across > multiple wl_pointer.frame groups. From my understanding™ this means that a compositor SHOULD group leave/enter events together. Is this common? From my testing... Not really. Notably, (only?) KDE does this. Our pointer frame event assumed that we would be working with the currently pointed window but since all events must be logically grouped together I think it can really only group "normal" events related to the *leave* event. Now, whenever there's a pointer focus change, we send everything to the old window, if it exists, otherwise the currently pointed one. This approach seems to handle complex event frames with both leave and enter events properly now, with good results on all compositors. This patch also and makes it harder to get to a null check when the window simply does not exists (the error was meant only for existing but invalid windows), along with an helper method to aid in this.
Linux/*BSD platform port
This folder contains the C++ code for the Linux/*BSD platform port.
See also misc/dist/linux folder for additional files
used by this platform.
Documentation
- Compiling for Linux/*BSD
- Instructions on building this platform port from source.
- Exporting for Linux/*BSD
- Instructions on using the compiled export templates to export a project.
Artwork license
logo.svg is derived from the Linux logo:
Permission to use and/or modify this image is granted provided you acknowledge me lewing@isc.tamu.edu and The GIMP if someone asks.