|
We'll check what we can do, but in general this is unsolvable for copies (solvable for pastes), because the alternative is worse. Clipboard is a resource that is shared between processes. The protocol for using the clipboard is this: open clipboard - take some data from it or put some data into it - close clipboard. If some application is working with the clipboard, other applications cannot open it. This poses a conundrum when copying big amounts of data into the clipboard: do we (a) start by opening the clipboard and then go on and copy the data, making the clipboard unavailable to other applications for minutes, or do we (b) prepare the data beforehand, and then try to put something like a link to it into the clipboard, which will only hold the clipboard busy for a couple of milliseconds? Before you say that of course it has to be (b), consider that after you prepared the data, the attempt to put a link to it into the clipboard might fail. Because, again, some other application might be holding the clipboard open. So, the user clicks Copy, we spend minutes collecting the data, then we come to the clipboard and it is busy. What now? Not only is the clipboard busy, there is no telling when it will become available. And we don't know why the clipboard is busy either. Maybe the user started copying something else but maybe that's just some application checking what the clipboard contains and it is just being slow. So we can perhaps retry putting the data into the clipboard several more times automatically, but eventually we will have to stop trying and throw the data we spent so much time collecting away. This is, of course, bad, because we spent minutes collecting the data and this time was wasted. The user will have to try clicking Copy again and we will have to spend more minutes collecting the data again and pray that the operation will succeed in the end. Because of that, everyone just does (a) and when it is slow, oh well, then it is slow and the clipboard is unavailable until the operation completes. The polite (b) is just hard to make work. The clipboard protocol needs to be more sophisticated to allow the polite (b). There are still things we can do to avoid the hangs and we will do them. But in general, when you copy a lot of data from 9, *other* applications might become unresponsive and there is nothing we can do about it.
|