'Used to pass a set of events as a single message for possibily
several different menuitems.  This is done to optimize DBus traffic.
Should return a list of ids that are not found. events is a list of
events in the same format as used for the Event method.'

@dbus_method(IFACE, in_signature=u'a(isvu)', out_signature=u'ai')
def EventGroup(self, events):

    missing = dbus.Array(signature=u'u')
    for (id, eventId, data, timestamp) in events:
        if (self.menu.id_to_action(id) is not None):
            self.menu.handle_event_signal.emit(id, eventId, data, timestamp)
        else:
            missing.append(id)
    return missing
