[R-SIG-Mac] Quartz copy/paste bug?
Demitri Muna
thatsanicehatyouhave at mac.com
Sat Mar 11 05:16:11 CET 2006
Hi Simon,
On 8 Mar 2006, at 19:54, Simon Urbanek wrote:
> Demitri,
>
> I have encountered this bug occasionally, but very rarely. The
> problem is, I didn't figure a way to reproduce it consistently. I
> was fiddling around with Quartz locking etc., but without
> reproducible example, it's almost impossible to fix. If you or
> anyone else could come up with a way to reproduce this behavior
> consistently, it would be great. Please let me know if you have a
> way for this to appear more often - I'd appreciate that.
Unfortunately, I have not been able to reproduce the bug
consistently. It "just happens". :)
I started to poke through the code, and wanted to get your thoughts
on this. In the copy: method in RQuartz.m, I replaced the following
code:
[deviceView setPDFDrawing:YES];
[deviceView lockFocus];
[deviceView writePDFInsideRect:[deviceView bounds] toPasteboard:pb];
[deviceView unlockFocus];
[deviceView setPDFDrawing:NO];
with:
[deviceView setPDFDrawing:YES];
NSRect r = [deviceView bounds];
NSData *data = [deviceView dataWithPDFInsideRect:r];
[pb setData:data forType:NSPDFPboardType];
[deviceView setPDFDrawing:NO];
A very simple (non-exhaustive!) test showed that this code will copy
the pdf as expected. Behind the scenes, I don't know if this is any
different from what you have, but I'll run with this change for a
while to see if it happens again.
Cheers,
Demitri
More information about the R-SIG-Mac
mailing list