input: add a weston_pointer_clear_focus() helper function
authorDerek Foreman <derekf@osg.samsung.com>
Mon, 11 May 2015 20:40:11 +0000 (15:40 -0500)
committerDaniel Stone <daniels@collabora.com>
Thu, 6 Aug 2015 15:28:30 +0000 (16:28 +0100)
commitf9318d145262444e2b671b40122fec9cab39b609
treeb0595e3f5de23db355dea0c5c567cb65183df631
parent2ccd9a2d6247d26975a8a846e9eb7a283c84a1ba
input: add a weston_pointer_clear_focus() helper function

Valgrind has shown that in at least one place (default_grab_pointer_focus)
we're testing uninitialized values coming out of weston_compositor_pick_view.

This is happening when default_grab_pointer_focus is called when there is
nothing on the view list, and during the first repaint when only the black
surface with no input region exists.

This patch adds a function to clear pointer focus and also set the sx,sy
co-ordinates to a sentinel value we shouldn't compute with.

Assertions are added to make sure any time pointer focus is set to NULL
these values are used.

weston_compositor_pick_view() now returns these values too.

Now the values are always initialized, even when no view exists, and
they're initialized in such a way that actually doing computation
with them should fail in an obvious way, but we can compare them
safely for equality.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
desktop-shell/exposay.c
desktop-shell/shell.c
src/compositor.c
src/compositor.h
src/data-device.c
src/input.c