Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • xserver xserver
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 933
    • Issues 933
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 100
    • Merge requests 100
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • xorg
  • xserverxserver
  • Issues
  • #917

Closed
Open
Created Oct 16, 2019 by Adam Jackson@ajax🎧Owner

Complicated redirection hierarchies break IncludeInferiors rendering

Composite means each window can have its own pixel storage if it wants. If you draw with an IncludeInferiors GC to a redirected parent window, with a visible child that is also redirected, rendering will draw through to the parent window's backing pixmap, but will not also be applied to the child's pixmap.

This is not an especially big deal, because this kind of complicated redirection hierarchy is not common, and neither is IncludeInferiors rendering. But it is, arguably, a bug. Fixing it doesn't seem that complicated? You can check at ValidateGC whether there are any redirected children (and the GC has IncludeInferiors set), and if so hook up a "complicated" set of GC ops. In those ops you re-dispatch the draw to each redirected child window (through a new, non-IncludeInferiors GC), translating coordinates as appropriate, and walking the tree from childmost to rootmost.

I recommend waiting to fix this until we find an app that requires it.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking