On Mon, Oct 15, 2012 at 08:52:03PM -0700, Ben Pfaff wrote: I did a little bit of research tonight after thinking about our IRC conversation about when it takes a long time to compose selection data for a clipboard response. I modified the function that responds to a clipboard request to printf a message, and then tried a few clipboard copies with two different clipboard managers running (Parcellite and Diodon) and with no clipboard manager running. Parcellite's behavior surprised me. Twice a second, it requests a new copy of the primary selection from whatever app owns it. If an app has a big selection, it essentially DOSes the machine. Diodon seems a little better. It appeared to request the selection three times (three formats? didn't check) and then stops. Without a clipboard manager, there's no problem.
None of the above surprises me. Clipboard "managers" cause problems as you have discovered. Gnumeric doesn't handle large copy/cut/paste particularly well either. It's easy to induce long pauses (seconds, maybe tens of seconds?) with a few hundred thousand cells. Does this happen going in both directions, or only in one? And is the bottleneck in the Gnumeric side or the Psppire side? At the end of the day, I would never encourage anyone to make large cut and pastes. Not only because of the performance issue, but also because it is so easy to inadvertently and unwittingly select the wrong cells - leading to data getting dropped or duplicated without anyone realising it. The clipboards (both PRIMARY and CLIPBOARD) are IMO a convenience feature designed to be used for quick transfer of small amounts of data between applications. The clipboards need to be able to generate text and html so that they can be pasted to spreadsheets and to text editors. The code in master does this quite well I think, so can probably be reused for the psppsheet branch. J'
signature.asc
Description: Digital signature
_______________________________________________ pspp-dev mailing list pspp-dev@gnu.org https://lists.gnu.org/mailman/listinfo/pspp-dev