GitLab will be down for maintenance this Sunday 13th June, from approx 7-11am UTC. This is for a PostgreSQL migration. See the tracker issue for more informations.

desktop-shell: Always activate the top-level surface

In case the device has only touchscreen input device and no keyboard or mouse,
the top level surface is never activated. The behavior differs from a device
which has a keyboard (or gpio-keys, or even uinput-emulated keyboard), where
callchain activate()->weston_view_activate()->weston_seat_set_keyboard_focus()->
weston_keyboard_set_focus()->wl_signal_emit(&keyboard->focus_signal, keyboard)->
handle_keyboard_focus()->weston_desktop_surface_set_activated(..., true); sets
the top level surface as activated. On device with touchscreen, the above is
never called, hence the top level surface is never activated. Add explicit
weston_desktop_surface_set_activated(shsurf->desktop_surface, true); into
activate() to always active the top level surface.

This fixes at least two known issues on such devices:
- Wayland terminal cursor is an empty bar (full bar with keyboard present)
- Chromium dropdown menus are randomly placed (they are placed correctly
  when keyboard is present, because then chromium can find the activated
  top level surface)

Signed-off-by: Marek Vasut <marex@denx.de>
5 jobs for fix-desktop-shell-top-level-activation in 3 minutes and 44 seconds (queued for 2 seconds)
latest
Status Job ID Name Coverage
  Container Prep
passed #7756863
container_prep

00:02:02

 
  Build
passed #7756865
kvm
build-docs

00:00:53

passed #7756864
kvm
build-native-meson-default-options

00:01:27

passed #7756866
kvm
build-native-meson-no-gl-renderer

00:01:01

 
  Pages
passed #7756867
preview-docs

00:00:14