applet: fix up the shell-version-detecting code
GNOME Shell claims its name on D-Bus without actually setting up its interfaces first, so if you try to query its properties right away, it fails. And GDBusProxy assumes (reasonably) that an object that doesn't implement the Properties interface when it first appears isn't going to start implementing it later, so the proxy will always think there are no properties there. So, to fix this, we have to destroy the proxy if we hit this bug, and then recreate it after a delay. Since this is getting complicated now, abstract all the shell-version-checking into a separate object. Also, don't do floating-point comparisons on version numbers, since floating point is inexact.
parent
378cda0b
Please register or sign in to comment