(0) MirPointerButton: Definitely a client ABI break now, so we must remember to bump to libmirclient9 ASAP (Alan is working on it but blocked by CI annoyances).
(1) I guess this isn't well tested yet because there's a logic error (should be "&="):
365 - buttons.erase(remove(begin(buttons), end(buttons), button));
366 + buttons |= ~button;
(0) MirPointerButton: Definitely a client ABI break now, so we must remember to bump to libmirclient9 ASAP (Alan is working on it but blocked by CI annoyances).
(1) I guess this isn't well tested yet because there's a logic error (should be "&="): erase(remove( begin(buttons) , end(buttons), button));
365 - buttons.
366 + buttons |= ~button;