Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • KWin KWin
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 67
    • Issues 67
    • List
    • Boards
    • Service Desk
    • Milestones
  • Bugzilla
    • Bugzilla
  • Merge requests 161
    • Merge requests 161
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • PlasmaPlasma
  • KWinKWin
  • Merge requests
  • !1672

effects/{blur,contrast,slidingpopups}: Schedule manager removal with a delay

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Vlad Zahorodnii requested to merge work/zzag/effects-delay-removing-globals into master Nov 16, 2021
  • Overview 3
  • Commits 3
  • Pipelines 0
  • Changes 6

This prevents flickering behind plasma panels after changing compositing settings.

If the blur effect is disabled, the destructor of the BlurEffect will start the blur manager remove timer. When it expires, the blur manager global will be removed and it will be finally destroyed after 5s (to work around the wl_global race condition).

If compositing is toggled, the destructor of the BlurEffect will start the remove timer and the constructor of the BlurEffect will stop the timer, the blur manager object will be unaffected.

The blur effect options don't affect the generated shader code, so the shader status check was removed in reconfigure().


This prevents flickering behind plasma panels after changing compositing settings.

If the contrast effect is disabled, the destructor of the ContrastEffect will start the contrast manager remove timer. When it expires, the contrast manager global will be removed and it will be finally destroyed after 5s (to work around the wl_global race condition).

If compositing is toggled, the destructor of the ContrastEffect will start the remove timer and the constructor of the ContrastEffect will stop the timer, the contrast manager object will be unaffected.

The contrast effect has no options that could affect the shader, so the reconfigure() method was removed.


PS: A bit ugly solution, but it should work. Needed to avoid mistriggering cleanup code in kwayland-integration!16 (merged)

Edited Nov 16, 2021 by Vlad Zahorodnii
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: work/zzag/effects-delay-removing-globals