def trigger_action(self, action, key_value, modifier_mask):
        """Calls the appropriate callback function(s) for the given action

        :param str action: The name of the action that was triggered
        :param key_value: The key value of the shortcut that caused the trigger
        :param modifier_mask: The modifier mask of the shortcut that caused the trigger
        :return: Whether a callback was triggered
        :rtype: bool
        """
        res = False
        if action in self.__action_to_callbacks:
            for callback_function in self.__action_to_callbacks[action]:
                try:
                    ret = callback_function(key_value, modifier_mask)
                    # If at least one controller returns True, the whole result becomes True
                    res |= (False if ret is None else ret)
                except Exception as e:
                    logger.exception('Exception while calling callback methods for action "{0}": {1}'.format(action, e))
        return res
Calls the appropriate callback function(s) for the given action

        :param str action: The name of the action that was triggered
        :param key_value: The key value of the shortcut that caused the trigger
        :param modifier_mask: The modifier mask of the shortcut that caused the trigger
        :return: Whether a callback was triggered
        :rtype: bool