GNOME Bugzilla – Bug 586549
Don't recreate the workspaces view on each redisplay of the overlay
Last modified: 2010-12-06 17:40:45 UTC
Showing the overlay should be instantaneous; to avoid delays, we need to keep all objects around instead of destroying them. Especially, creating the clones and updating the layout when workspaces and windows are created rather than when entering the overlay will help. I'll post a patch soon.
Created attachment 137302 [details] [review] Don-t-recreate-the-workspaces-view-on-each-redisplay.patch First attempt. The patch is mainly moving calls around so that most work happens on init rather than display. That works, except that workspaces already present at start don't have their desktop clone for background. From a quick debugging, I've discovered that the desktop window is not found - that occurs 4 times at start, I guess one for every workspace created by default (3 are not shown?). Hints welcome!
There is discussion in bug 582341 about using clones for windowmanager effects, particularly switch-workspace. In that case, perhaps we'd want to just have one clone of every window at all times, managed separately from workspaces.js? Originally the workspaces were sized and created once at startup, like in your patch, with a comment about "FIXME: what if the screen is rotated or resized". So I changed it to recreate it every time, so that if the screen changed while you were outside the overlay, it would be reflected in the workspaces the next time you went into the overlay. But there's still the problem of if you rotate the screen while the overlay is active, so that didn't really solve the problem...
This one can also be closed...