Shroud
Shroud copied to clipboard
Multiscreen
Hi Nicholas,
I'm guessing you don't want Shroud to cover all your screens, but I think I do. Here's my version if you want to pull it into the mainline.
-jwr
Yup, I did mention that in the help :-) I'm going to make this optional but I will merge your changes in a couple weeks—I’m in the process of moving right now.
Thanks for the contribution!
I've updated my Pull Request with a couple of bug fixes/
Ha, totally missed those :-) Thanks. I noticed a race in a bugfix I just added, hope to get to it next week too.
If you just close and reopen the Shroud windows whenever the display layout changes, it messes with the window stacking order (i.e., you end up with a big gray screen). I think the easiest way to fix this would be to iterate through the screen windows, closing windows for nonexistent screens and resizing those for still-extant screens as necessary. (The menubar Spaces bug workaround code may have been a bit of a red herring because it has a fixed stacking order.)
Another issue is where to put the window for a newly attached screen. I think it would make sense to use the same stacking order as the main screen window; -[NSWindow orderWindow:relativeTo:] should hopefully behave as expected.
Shroud 1.2 is rewritten to use -[NSWindow orderWindow:relativeTo:], with support for hiding/showing Shroud's backdrop that saves/restores window stacking order. I have noticed some flakiness in places (e.g. with Spaces), but it does seem to mostly behave as expected.
This will get more complicated with multiple displays, and I haven't looked at Mavericks yet — but it's a start.
(Note: I realize from Edge Cases that your use case for Shroud is very different from mine, and none of this stacking stuff really matters to you — just updating this request for anyone else who's watching.)