desktop: Make popup grab follow keyboard focus semantics

A popup grab is specified to have the top most popup surface gain
keyboard focus. This means the keyboard focus should always follow the
most recent xdg_popup.grab() surface. Make sure this happens by keeping
track of the parent surface in the libweston-desktop popup grab,
updating the keyboard focus when surfaces are added and removed from the
popup chain, and restoring the keyboard focus to the toplevel when there
are no popups anymore.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2 jobs for wip/keyboard-focus-follows-popup in 6 minutes and 13 seconds (queued for 1 minute and 40 seconds)
latest
Status Job ID Name Coverage
  Build
passed #126361
build-native-autotools

00:03:55

passed #126362
build-native-meson

00:02:17