Commit Graph

4221 Commits

Author SHA1 Message Date
George Peter Staplin
6333d619e7 XQuartz: pbproxy: Fix another STRING bug.
Fix the usage of the NSString cStringUsingEncoding: - it doesn't NUL
terminate the string, which lead to a bus error.  So, we use
lengthOfBytesUsingEncoding: to get the length in bytes instead of
strlen().
2008-09-25 14:16:20 -06:00
George Peter Staplin
82a4dc5f0f XQuartz: pbproxy: Fix a bug that rxvt brought out in STRING copying. Now I can copy and paste to/from rxvt correctly. 2008-09-25 12:31:58 -06:00
Jeremy Huddleston
93ab4e0071 XQuartz: Fixed threading issue with TSM. 2008-09-24 22:51:03 -07:00
Jeremy Huddleston
2fb2bc77b8 XQuartz: pbproxy: Removed stray SPI include. 2008-09-24 18:57:36 -07:00
George Peter Staplin
aa98db576b XQuartz: pbproxy: Fix 3 paths that could leak memory.
2 of the paths leaked, when INCR transfers were done.  Now we
are leak free according to the leaks program for all transfers
I have tried so far.
2008-09-23 13:59:25 -06: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
63a680354d XQuartz: pbproxy: Add a comment to pbproxy.h about how the DB()
macro causes a leak (according to the leaks program).

Attempt to fix several other leaks with release method calls.
For some reason the process still grows more than it should...

I will need to use some better methods than leaks, and malloc_history
I suspect.  Whatever is leaking, it's hard to find.  I need to isolate
the cases more.

Add a missing image/jpeg branch.

Remove read_prop_32 - it's not used.
2008-09-22 17:43:40 -06:00
Jeremy Huddleston
5f1265b82e XQuartz: 64bit crash fix ... don't pass pointers through xe. 2008-09-20 19:45:19 -07: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
adf339d8f9 XQuartz: pbproxy: Fix a bug that occured when a PICT format was available.
We may need another branch to convert a PICT to a PNG or JPEG.  For now
TIFF works well in all of the test image copying apps when converted to
PNG or JPEG with an NSBitmapImageRep class.
2008-09-19 21:28:46 -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
Jeremy Huddleston
7713d7ab66 XQuartz: "Disable" the text when syncing is disabled. 2008-09-19 13:15:07 -07:00
Jeremy Huddleston
d76cca5e1e XQuartz: Added a preferences UI for pbproxy options. 2008-09-19 12:41:52 -07:00
George Peter Staplin
1b4987e779 XQuartz: pbproxy: Add a missing include of Xutil.h. Another header
seems to have done this before, but correctness matters.
2008-09-19 00:18:44 -06:00
George Peter Staplin
1e9460abdf XQuartz: pbproxy: Add COMPOUND_TEXT handling. Do misc. cleanups with testing
to verify that the behavior didn't change.

main.m: XInternAtom compound_text, and atom_pair.

pbproxy.h: Add compound_text and atom_pair to the struct atom_list.

x-selection.m: Add an #include of Xutil.h.  Refactor the reply struct
initialization to be done in a common place.  Add send_reply: to simplify
the code a bit more.  Add send_compound_text: which handles the
COMPOUND_TEXT type.  Add the beginnings of a send_multiple:.  Change
handle_image:extension: to handle_image:.  The extension: message isn't
needed anymore.
2008-09-19 00:02:48 -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
12912adaee XQuartz: pbproxy: Use an NSBitmapImageRep to convert an "image/png" selection
to a TIFFRepresentation for use with NSPasteboard.

This has been tested with the Gimp and works with some minor quartz-wm changes.
The Finder clipboard shows the image updates after an Edit -> Copy.
2008-09-17 12:04:20 -06:00
Jeremy Huddleston
1317c8ff94 XQuartz: Don't enable 8bit visuals in the TrueColor server, since it's not working yet 2008-09-17 10:11:00 -07:00
George Peter Staplin
934669f732 XQuartz: pbproxy: The greedy CLIPBOARD handling now works for text.
This change adds some [self own_clipboard] calls in the necessary places to get the proper greedy behavior.

UTF8_STRING and STRING properties seem to work well now with the test cases (PRIMARY, and CLIPBOARD).  I can copy from several different X apps, and have the behavior be correct when pasting.  I also verified that quartz-wm isn't doing the copying, by disabling the quartz-wm paths.
2008-09-16 21:09:22 -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
37361567b6 Rename reclaim_clipboard to claim_clipboard.
Convert the puts usage to use DB().

Add the initial handle_image method.

Check for nil in the NSString instantiation in various places.

Add some commentary to enhance the clarity of why I did some things.
2008-09-15 13:35:46 -06:00
George Peter Staplin
ea9dc27977 Add an image_jpeg Atom. 2008-09-15 13:31:19 -06:00
George Peter Staplin
d333a8e2b5 Rename reclaim_clipboard to claim_clipboard. 2008-09-15 13:28:50 -06:00
George Peter Staplin
32b175ef62 Add image/jpeg type, and rename reclaim_clipboard to claim_clipboard. 2008-09-15 13:27:08 -06:00
Jeremy Huddleston
21a2d0b8d0 XQuartz: pbproxy: Added global variables to customize how pbproxy behaves 2008-09-15 09:33:55 -07:00
Jeremy Huddleston
5c8b956f8f XQuartz: pbproxy: First round of updates to pbproxy from George. 2008-09-14 09:23:17 -07:00
Jeremy Huddleston
e90dabb5a7 1.4.2-apple17 2008-09-05 17:33:18 -07:00
Jeremy Huddleston
43184cd379 XQuartz: Dead code removal 2008-09-05 17:32:16 -07:00
Jeremy Huddleston
8dd6d5c825 XQuartz: 256 color support 2008-09-05 17:05:03 -07:00
Jeremy Huddleston
bf10fb0b1f XQuartz: Dead code removal 2008-09-05 10:46:36 -07:00
Jeremy Huddleston
4fe605c2bc XQuartz: Changed around fd handoff model to be more robust 2008-09-05 10:46:20 -07:00
Jeremy Huddleston
df2120ccbc 1.4.2-apple16 2008-09-04 15:34:39 -07:00
Jeremy Huddleston
c0da576d49 XQuartz: Don't warp the pointer on server start for XQuartz 2008-09-04 14:59:10 -07:00
Jeremy Huddleston
c1caeb52a4 XQuartz: Make WarpPointer multithread safe in XQuartz. 2008-09-04 10:00:43 -07:00
Jeremy Huddleston
2e45344870 XQuartz: Dead code removal 2008-09-04 09:18:40 -07:00
Jeremy Huddleston
d7ce166ee8 1.4.2-apple15 2008-09-04 08:55:45 -07:00
Jeremy Huddleston
d942849f24 XQuartz: Fixed proximity logic errors for tablets. 2008-09-04 08:55:22 -07:00
Jeremy Huddleston
4904e04ce6 XQuartz: Added locking into mieq to protect X from eating itself 2008-09-04 08:37:22 -07:00
Jeremy Huddleston
4a653c6bfd XQuartz: Remove decls of crashtracer strings that we don't use anymore in here 2008-09-04 08:07:32 -07:00
Jeremy Huddleston
a16048cec0 XQuartz: Fixed a crash in RootlessNativeWindowMoved 2008-09-04 05:18:31 -07:00
Jeremy Huddleston
c7b35ee5de 1.4.2-apple14 2008-09-03 15:20:54 -07:00
Jeremy Huddleston
1f842c71c3 XQuartz: Added pasteboard proxy code stripped out of quartz-wm. 2008-09-03 09:16:16 -07:00
Jeremy Huddleston
6bca787609 XQuartz: Updated Tablet code to include ranges for valuators and added cursor and erasor 2008-09-03 09:11:25 -07:00
Jeremy Huddleston
2f1e163d5d XQuartz: Removed "Done" button from Applications Customization. Now properly save on exit. 2008-09-03 03:54:42 -07:00
Jeremy Huddleston
c9ac2f5753 mieqProcessInputEvents: Check custom event handlers first. 2008-09-03 03:17:59 -07:00
Jeremy Huddleston
8b8e0aea6f XQuartz: Removed NewCurrentScreen debugging spew. 2008-09-03 03:14:22 -07:00
Jeremy Huddleston
6932d0d19e XQuartz: Updated man page 2008-09-03 02:41:20 -07:00
Jeremy Huddleston
3d74f77490 XQuartz: Removed dead code (unused option definitions) 2008-09-03 02:37:09 -07:00
Jeremy Huddleston
ebfe49dfca XQuartz: Cleaned up our sleeping before adding the launchd socket. 2008-09-03 02:36:39 -07:00
Jeremy Huddleston
da647f1add XQuartz: Fixed editing of Applications menu 2008-08-30 16:13:58 -07:00