Commit graph

16 commits

Author SHA1 Message Date
Jeremy Huddleston
477c6968a8 XQuartz: pbproxy: nuke RCS Id, update header license/copyright 2008-11-16 17:57:46 -08:00
George Peter Staplin
8d048cfa95 XQuartz: pbproxy: Add code to handle PICT conversion to PNG and JPEG.
This may work, unfortunately I don't have test apps that fail.

The way it works is by using an NSImage class initWithPasteboard:
method, which we then get the TIFFRepresentation of, and convert
to PNG or JPEG.

The TIFFRepresentation uses NSTIFFCompressionNone; which should be
lossless.
2008-10-27 16:34:24 -06:00
Jeremy Huddleston
6622efca21 XQuartz: pbproxy: Fix compilation on case-sensitive file systems... 2008-10-23 15:01:03 -07:00
Jeremy Huddleston
bcb83eea72 XQuartz: implemented primary-on-grab and fixed clipboard-to-pasteboard 2008-10-15 14:11:18 -07:00
Jeremy Huddleston
f7673bb4de XQuartz: xpbproxy: Support some of the preference toggles from X11.app, cleaned up CLIPBOARD_MANAGER atom management. 2008-10-04 18:54:15 -07:00
George Peter Staplin
4d51ad851e XQuartz: pbproxy: Possibly fix a memory leak by using an [NSApp run] loop,
instead of calling CFRunLoopRun() directly.  The leak wasn't reproducible on
this machine, but someone was able to produce a leak trace with Instruments
that indicates it was leaking in the CFRunLoopRun() path.

x-input.m: dequeue and ignore events when pbproxy_active is false.

x-selection.h: add an is_active method that is used by x-input.m to ignore
events.

x-selection.m: Handle nearly every preference, except for primary_on_grab,
which I don't really understand yet.
2008-10-01 00:03:29 -06:00
George Peter Staplin
602e8ba8f7 XQuartz: pbproxy: Make the signal handler safer by using _exit, and only exit.
Remove some unnecesssary headers.

Remove some dead code that was never called or used in pbproxy.

Make use of an NSAutoreleasePool in x_init.  It could potentially cause a leak
on a startup without this.

Start adding reload_preferences to the x_selection class, as well as event
handling for that.
2008-09-30 13:04:35 -06:00
Jeremy Huddleston
c2012138a5 Xquartz: xpbproxy: Split out app-specific stuff to app-main.m in prep for making this into a thread. 2008-09-27 15:30:10 -07:00
George Peter Staplin
b245d84a72 XQuartz: pbproxy: Fix NSObject memory leaks by properly using the
NSAutoreleasePool.   Now the usage is consistent.  In x_input_run()
we create a pool, and release it after processing the XEvents.

Add some getpid() output to main for debugging.  It needs a bit more
testing before the next release.

Don't retain the NSPasteboard as the old code did.  That may have
contributed to the leak, and it made it so that we needed the
NSAutoreleasePool created in main().

Remove the _known_types, and _pasteboard instance variables from
the x_selection class.  They aren't needed anymore.

The leaks program now indicates 0 leaks after some usage.  I want
to test further, but this seems much better, and my memory usage
graph indicates it's not growing.
2008-09-23 12:39:32 -06:00
George Peter Staplin
c1403c713c XQuartz: pbproxy: Add an X error handler that returns 0.
Move the struct atom_list into the x-selection class, so that it's
no longer a global variable named atoms.  This may ease pthread
integration and reduce the chances of symbols conflicting.
2008-09-20 17:49:16 -06:00
George Peter Staplin
7ca1532e8e XQuartz: pbproxy: Make the proxy handle copy request races, and PRIMARY
INCR transfers mixed with a CLIPBOARD change.

Fix a bug with some UTF-8 transfers.  I can only guess that my UTF-8
tests before were inadequate.  I can now copy/paste any characters between
uxterm and Textedit.app.
2008-09-19 14:37:50 -06:00
George Peter Staplin
4a8daf8846 XQuartz: pbproxy: pbproxy now responds to selection request events.
We can now copy and paste images to and from X11.  Text copying and
pasting works as well.

The NSPasteboard can contain TIFF or PICT images, and pbproxy will
translate to an image/png or image/jpeg request, and list those in the
TARGETS.

I added a description of the basic design at the top of x-selection.m.

I removed the request_data x_selection class struct.  It's not needed.
2008-09-18 13:10:41 -06:00
George Peter Staplin
40190675a6 XQuartz: pbproxy: return the TARGETS list as a 32-bit list to fix a bug that was in the original.
Add TRACE() calls where appropriate to try to figure out why we are losing CLIPBOARD at times, after transferring PRIMARY to the NSPasteboard.

Use the new pbproxy_clipboard_to_pasteboard where appropriate.
2008-09-16 15:21:18 -06:00
George Peter Staplin
d333a8e2b5 Rename reclaim_clipboard to claim_clipboard. 2008-09-15 13:28:50 -06:00
Jeremy Huddleston
5c8b956f8f XQuartz: pbproxy: First round of updates to pbproxy from George. 2008-09-14 09:23:17 -07:00
Jeremy Huddleston
1f842c71c3 XQuartz: Added pasteboard proxy code stripped out of quartz-wm. 2008-09-03 09:16:16 -07:00