Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is mostly stuff adapted from the corresponding gala/wip/mutter-3.3x branch. I had to look up some API changes which didn't affect gala. Anyway, there's no guarantee that this actually works correctly, but it kinda does on fedora 31.
I confirmed that this continues to compile with mutter 3.28, and it does compile on fedora 31 (mutter 3.34.1) and fedora rawhide (mutter 3.35.1). So the support for mutter 3.30 and 3.32 is untested, but present and should be working as well.
Note 1: I'm using conditional compilation as it's used elsewhere for this kind of "dual" / "multiple" support, so the original code (mutter 3.28 support) is effectively unchanged.
Note 2: This makes wingpanel actually launch in a Pantheon session with gala compiled against mutter 3.34. But gala is still crashing at launch for various reasons I haven't been able to completely understand yet. Either it crashes in workspace handling code, or in screensaver registering code, depending on whether Pantheon is launched from LightDM or GDM, respectively.
Anyway. Treat this as a proof-of-concept starting point.