xdg-shell: Relax popup destroy order requirements

Calling destroy on any popup other than the topmost popup associated
with the given toplevel is currently a protocol error. As younger popups
stack on top of older popups, this means that an older popup cannot be
destroyed before a younger one.

This requirements conflicts with legitimate use-cases, such as having an
older tooltip disappear after a newer tooltip has opened, or dismissing
a context menu after a popup-based notification has appeared.

Relax the destroy requirements to allow out-of-order popup destruction.

Signed-off-by: Kenny Levinsen <kl@kl.wtf>
3 jobs for popup-unordered-destroy in 56 seconds (queued for 1 second)
latest