Skip to content

Root filters rework #255

@dawsers

Description

@dawsers

Starting from 1.12.9, root filters are used more prominently, and they need some rework.

There can be a case where a quick succession of actions may leave the state of root filter data invalid. See this case:

  1. A command creates its root filters and data. For example workspace switch
  2. While the command's animation (workspace switch) happens, we call jump.
  3. jump stores the filters for the previous command (workspace switch) with the idea of restoring them after it is finished (jump finishes)
  4. The jump command transaction stops the animation for workspace switch, and workspace switch clears its data.
  5. jump ends and restores the workspace switch filters and data, but they are no longer valid (or needed).

This causes a crash.

Reproduce:

  • Set the animation for workspace_switch long enough to be able to call jump while it happens.
  • Create some windows on a workspace
  • Switch to the next workspace on the same output
  • Switch back to the previous workspace on the same output, and while the animation runs, call jump tiling
  • Cancel jump when you see the labels
  • scroll crashes trying to access the old data for workspace switch which was incorrectly restored by jump when it finished.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions