Skip to content

Screenshooting and screen casting fixes

Jonas Ådahl requested to merge jadahl/mutter:wip/fix-screenshots into master

This contains two slightly entangled fixes:

  • Screencasts on X11 didn't include cursor sprite.
  • Screenshooting using clutter_stage_paint_to*() didn't always include the cursor sprite.

The first was previously fixed in GNOME Shell by polling the X server while screen recording. This functionality has now moved to mutter and the screen cast implementation. In the Wayland session there were no changes needed as the pointer position is handled by mutter itself and not the X server.

The second is handled by having the cursor renderer always managing a cursor sprite overlay on the stage, and only hiding it when the cursor is assigned to a cursor hw plane. This allows us to record a frame (using clutter_stage_paint_to*()) with the cursor sprite included, without disabling the hw cursor plane.

Merge request reports