Skip to content
This repository has been archived by the owner on Mar 19, 2024. It is now read-only.

Executing and closing wallpaper a second time causes "pointer trails" etc. #103

Closed
Kazinsal opened this issue Jul 12, 2015 · 2 comments
Closed

Comments

@Kazinsal
Copy link

wallpaper

Steps to reproduce:

  1. Execute wallpaper.
  2. kill or otherwise terminate the new wallpaper process.
  3. Move the mouse over the existing wallpaper, close or move a window, etc.
@klange
Copy link
Owner

klange commented Jul 13, 2015

Ah, here's the explanation for this one:

  • The wallpaper window occupies a special z-index slot for the "bottom" window. Other windows that occupy this slot include the login screen when applicable. There is another "top" window slot for the panel. Only one window can be in each of these slots at the moment.
  • When you launch a new wallpaper, it pushes the old wallpaper out of the bottom slot and replaces it.
  • When you close the wallpaper, you end up with no window in the bottom slot.
  • The compositor doesn't clear the screen during redraws, as /normally/ there will be a full-screen, opaque bottom window (login, wallpaper), but now you don't have one, so you get ghosting.

The correct solution to this is to finish implementing the multiple bottom/top slots, so that launching a new wallpaper instance doesn't clobber the old one. A workaround would be to keep track of windows that were in the bottom slot and put one back if it becomes empty. Another possibility is to do a bit more work to prevent the wallpaper from being run again (along with the panel, and various other conflicting applications, like terminal-vga or other instances of the compositor).

@klange
Copy link
Owner

klange commented Jan 7, 2017

The wallpaper app responds to SIGUSR2 to reclaim its hold on the bottom layer slot, which should be a sufficient workaround for this... maybe...

@klange klange closed this as completed Jan 19, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants