Skip to content

Refactor event grouping to allow for nested groups #4216

@BeksOmega

Description

@BeksOmega

Is your feature request related to a problem? Please describe.

Related to #4189 and #2169.

The problem is that we'd like to be able to have event groups inside of event groups, and not have the inner group clobber the outer one as stated here.

Describe some solutions

One solution to this problem is to create a stack of event groups. Each time we start a group, we push the old one to the stack. Each time we stop a group we pop the old one from the stack. But this doesn't work with the workspace's grouping logic, which expects each grouped event to be in the same group. So we would still get clobbering.

Another solution is to create a groupCount_ that works similarly to the Events.disable_ count. Each time we start a group, if we already have a group we bump the group count instead of changing the group. Each time we disable we subtract one from the count until we have no inner groups, and then we actually stop the group. But this doesn't work because setGroup() allows you to pass an explicit group name, and outside developers may be relying on this logic to perform certain actions if certain events are in certain groups.

So I've got no workable ideas atm hehe.

Additional context

I'm not creating an issue because this is super important or anything. I just wanted to document the info somewhere and I couldn't find an existing issue that covered this topic.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions