Yes, it gets set. See this for a minimal example: https://gist.github.com/drinkcat/8571526 , try sending signals at various stages.

We need it so that we can still receive signals while the previous clipboard transfer is ongoing, so the clipboard on the current display is always up to date. Not so likely on x86/x11 where VT change is slow, more likely on Xephyr where change is fast (especially now that you fixed smartcycle so the user does not need to release Ctrl-Alt-Shift). I guess I should try to print something when it happens, and see how easily I can trigger it ,-)

Case 1: The user quickly changes display 0->1, then 1->2. Without SIG, if 1->2 happens during the clipboard copy from 0->1, the clipboard will not be valid in display 2 (since we do not know about that change). Also, the next update would copy from 1 to the next display. Not good.

Case 2: User does 0->1, 1->2, 2->3. Say 1->2 and 2->3 happen during clipboard copy 0->1. SIG is set (twice, but that does not matter), so we know we need another update after the copy. We notice that the current display is 3, and transfer clipboard 1->3 (bypassing 2 is perfectly fine).