diff options
author | Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> | 2018-08-22 16:36:51 +0200 |
---|---|---|
committer | Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> | 2018-08-23 11:29:03 +0200 |
commit | f4ae9824f72b62ad330b364964cf4e4eaf0f8f90 (patch) | |
tree | 55b7c6f8f1cc75a0ea2e6bd8974400d4deb32d55 /backend/drm/renderer.c | |
parent | 6db9c4b74667c1d917d720f5e96985a2461569fb (diff) |
rootston/layer_shell: fix clicking after surface moved/resized
Layer surfaces are not notified of cursor position changes if the surface moves, only if the cursor moves. This workaround emits a cursor position event every time a cursor ends up over a newly resized layer surface to make sure the following clicks land in the right place.
This change doesn't address sending leave events when a cursor previously present over the surface becomes away.
There are 2 separate mechanisms in play, because a layer surface gets resized in 2 steps:
1. Layer surface resize & rearrange.
2. Underlying surface resize.
The first step may affect all layer surfaces. The cursor events are sent to cursors placed over all layer surfaces which have moved (not been resized). The second step affects any layer surface whose surface changed size. The cursor event is sent only to that surface.
Together, these events cover all surfaces: those which moves, and those which changed size, as long as each layer surface resize is accompanied by an immediate surface resize.
Diffstat (limited to 'backend/drm/renderer.c')
0 files changed, 0 insertions, 0 deletions