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.
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.