Commit Graph

263 Commits

Author SHA1 Message Date
George Peter Staplin 7fa6fc5ad0 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.
(cherry picked from commit adf339d8f948fc1e308dbcae38fcfce504b5b0ab)
2008-09-21 17:40:41 -07:00
George Peter Staplin f67490ceb5 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.
(cherry picked from commit 7ca1532e8e6e2c733c9c508eee0de73d09ecb947)
2008-09-21 17:40:41 -07:00
Jeremy Huddleston b666ffd781 XQuartz: "Disable" the text when syncing is disabled.
(cherry picked from commit 7713d7ab66e74b212a6c0d634a3ad82373e178db)
2008-09-21 17:40:41 -07:00
Jeremy Huddleston dba290ec23 XQuartz: Added a preferences UI for pbproxy options.
(cherry picked from commit d76cca5e1eae86450aa236e49a2024881d0bac01)
2008-09-21 17:40:35 -07:00
George Peter Staplin a928cae57b XQuartz: pbproxy: Add a missing include of Xutil.h. Another header
seems to have done this before, but correctness matters.
(cherry picked from commit 1b4987e779d97b90669bac2405a4672085677f7c)
2008-09-21 17:40:16 -07:00
George Peter Staplin 749bdf19b2 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.
(cherry picked from commit 1e9460abdf5bafe46215966bbef3e796cb1c33e0)
2008-09-21 17:40:16 -07:00
George Peter Staplin 00bfbee59f 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.
(cherry picked from commit 4a8daf884694c9c420c45d427f1f84e608e7e48f)
2008-09-21 17:40:16 -07:00
George Peter Staplin 811e9f5e9e 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.
(cherry picked from commit 12912adaeea759d30f96d8ae51a84fd1659ea0ac)
2008-09-21 17:40:16 -07:00
Jeremy Huddleston d8d555bac7 XQuartz: Don't enable 8bit visuals in the TrueColor server, since it's not working yet
(cherry picked from commit 1317c8ff94c4bd32617a5398e929f667bd87da58)
2008-09-21 17:40:15 -07:00
George Peter Staplin 23ec8261b6 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.
(cherry picked from commit 934669f732c28f07b9d934d8f8f0b63ccfebd900)
2008-09-21 17:40:15 -07:00
George Peter Staplin 7c2eb3d41a 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.
(cherry picked from commit 40190675a6c1889cca3574e5d1a9c16ab74315a7)
2008-09-21 17:40:15 -07:00
George Peter Staplin 81c836902d 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.
(cherry picked from commit 37361567b65241eab64e8b30cd9729d0e71a86d2)
2008-09-21 17:40:15 -07:00
George Peter Staplin 85e23affea Add an image_jpeg Atom.
(cherry picked from commit ea9dc27977c5eab666f2aa2d914e4e28d36758c7)
2008-09-21 17:40:15 -07:00
George Peter Staplin 6b42f40ff9 Rename reclaim_clipboard to claim_clipboard.
(cherry picked from commit d333a8e2b5514b8b76a78c6a13a3f5149ea8de27)
2008-09-21 17:40:15 -07:00
George Peter Staplin 2ab56981b1 Add image/jpeg type, and rename reclaim_clipboard to claim_clipboard.
(cherry picked from commit 32b175ef62b68a971784e51e937e358cb10e20ac)
2008-09-21 17:40:14 -07:00
Jeremy Huddleston cbd32645f7 XQuartz: pbproxy: Added global variables to customize how pbproxy behaves
(cherry picked from commit 21a2d0b8d03faf1c66ec0c5c11fbd2ab24547727)
2008-09-21 17:40:14 -07:00
Jeremy Huddleston 5b397642cd XQuartz: pbproxy: First round of updates to pbproxy from George.
(cherry picked from commit 5c8b956f8f3f17e8d577d97cb66424954be72684)
2008-09-21 17:40:14 -07:00
Jeremy Huddleston 999f3362d5 XQuartz: Dead code removal
(cherry picked from commit 43184cd379c4fb7254391b8a362016cbf89b5529)
2008-09-12 15:26:18 -07:00
Jeremy Huddleston 6548a55ebd XQuartz: 256 color support
(cherry picked from commit 8dd6d5c825d457f26b41b79d02d57ed4a5ecf1f5)
2008-09-12 15:26:13 -07:00
Jeremy Huddleston bad7cd14c2 XQuartz: Dead code removal
(cherry picked from commit bf10fb0b1f776e72db7c76db11f764e26f9d62c4)
2008-09-12 15:26:07 -07:00
Jeremy Huddleston 1119fe136f XQuartz: Changed around fd handoff model to be more robust
(cherry picked from commit 4fe605c2bc62d50e0b5764d9edda245af227630b)
2008-09-12 15:26:01 -07:00
Jeremy Huddleston 183233b27b XQuartz: Don't warp the pointer on server start for XQuartz
(cherry picked from commit c0da576d4921c246a9ac747921b48ab9e718347f)
2008-09-12 15:25:44 -07:00
Jeremy Huddleston 7a46dd30d3 XQuartz: Dead code removal
(cherry picked from commit 2e45344870f5d17181df6407da3448991036d783)
2008-09-12 15:22:46 -07:00
Jeremy Huddleston 1c70e53f25 XQuartz: Fixed proximity logic errors for tablets.
(cherry picked from commit d942849f248c368b92ca73e145e8a5bc339112d7)
2008-09-12 15:22:39 -07:00
Jeremy Huddleston 1669308be6 XQuartz: Added pasteboard proxy code stripped out of quartz-wm.
(cherry picked from commit 1f842c71c35db031a24de646429834d6054adf1d)
(cherry picked from commit 144746223d8dc3f6ff2a0e805aa27a6e57df558a)
2008-09-03 09:33:58 -07:00
Jeremy Huddleston 46168b3b40 XQuartz: Updated Tablet code to include ranges for valuators and added cursor and erasor
(cherry picked from commit 6bca78760951cb5cb57ea66b7631a2dc230dc27a)
(cherry picked from commit fafcafd6de39cf6b5967793f03b30b49db36fec5)
2008-09-03 09:33:53 -07:00
Jeremy Huddleston 7f5318131d XQuartz: Removed "Done" button from Applications Customization. Now properly save on exit.
(cherry picked from commit 2f1e163d5db6063e54fcaa045ea67c29ce3e46aa)
(cherry picked from commit 7542c00b96461c3474b8c23545171c4b6ddfd29d)
2008-09-03 09:33:45 -07:00
Jeremy Huddleston 700e8bf33f XQuartz: Updated man page
(cherry picked from commit 6932d0d19ea75c64ed38b82a246b68c6bbfb8cec)
(cherry picked from commit 8e3da36b6b0a261975808bc67b5caca733a1a23d)
2008-09-03 09:25:13 -07:00
Jeremy Huddleston 7430bb9093 XQuartz: Removed dead code (unused option definitions)
(cherry picked from commit 3d74f77490105c0704c0b10dc7a6eb859bf6e985)
(cherry picked from commit c1e5ea9ba058f6a13f564165a3d6862335729630)
2008-09-03 09:25:07 -07:00
Jeremy Huddleston b3836e5bdd XQuartz: Cleaned up our sleeping before adding the launchd socket.
(cherry picked from commit ebfe49dfca6e04d66232bad760f522629397cc35)
(cherry picked from commit 2cf74a76d54d795cfc3c0380a526b9177327782d)
2008-09-03 09:24:59 -07:00
Jeremy Huddleston 0cd6709db5 XQuartz: Fixed editing of Applications menu
(cherry picked from commit da647f1add4c1ae7854c0fbfbf972666ce5d12c8)
2008-08-30 16:25:06 -07:00
Jeremy Huddleston c4d290fc54 XQuartz: Fixed missing symbol in quartzKeyboard debugging
(cherry picked from commit 8ad55e484f0ba9073ce07a03de660cc546a7b668)
2008-08-30 14:21:17 -07:00
Jeremy Huddleston 1885582444 XQuartz: Placate automake which doesn't like escaped newlines even in comments...
(cherry picked from commit 73db1170129a31ad2d55a7e83ac6dfc8030e47f1)
2008-08-29 21:18:26 -07:00
Jeremy Huddleston 8abcc12fdd XQuartz: Added debugging output to the crash log to help track down two crashes, since people don't often report their system.log spew.
(cherry picked from commit aaf0f71db197526b6b866cc1b39fbdfe051879ef)
2008-08-29 20:55:25 -07:00
Jeremy Huddleston aee19c7b55 XQuartz: xp_is_symbolic_hotkey_event catches the input menu, but not our mainMenu, so we still need to do that the old way.
(cherry picked from commit 25eccf12c89d73b8bce2c9be14841efb230acedc)
2008-08-29 20:53:10 -07:00
Tomas Carnecky ebea78cdba Prepare for array-index based devPrivates.
TODO: static indices can be made just an int; some indices
can be combined.
2008-08-28 18:05:40 -04:00
Jeremy Huddleston 2db1afbf2e XQuartz: Always use TIS for the keyboard layout seed since KB* aren't thread safe.
(cherry picked from commit c8244177b0dbcb28d2f5509e6f2a3e8057889790)
2008-08-26 23:10:18 -07:00
Jeremy Huddleston 319405fa4a XQuartz: Fixed needed xplugin version. ><
(cherry picked from commit 01b3a99dff79e0d2b316e02658c19fa79d9144ae)
2008-08-26 23:10:17 -07:00
Jeremy Huddleston 3350770bd6 XQuartz: Use new Xplugin API to determine if a keypress event corresponds to an OS-X hotkey that we should dispatch to Appkit.
(cherry picked from commit e7658e745f8a3eaf5cec9f54a8a1b7e5a7708e09)
2008-08-26 20:19:47 -07:00
Jeremy Huddleston 7930ea9116 XQuartz: Made a note to come back to the xinitrc race condition in the 1.5 branch when we move up to it.
(cherry picked from commit 54a882dcbdccef3f3eb4e6398e13c88185a8986c)
2008-08-26 20:19:44 -07:00
Jeremy Huddleston dc1171df5b XQuartz: Fixed bogus args to debug ErrorF
(cherry picked from commit f0351c2b80f30ae31f041798b84139141fc3d5a5)
2008-08-26 20:19:41 -07:00
Jeremy Huddleston ac936525af XQuartz: Cleaned up mouse event translation a bit more.
(cherry picked from commit c286f2a718fdaf6ad10249b59abb20731da8d904)
2008-08-26 20:19:38 -07:00
Jeremy Huddleston 1b42f55000 Xquartz: Added missing ev_type for NSTabletPoint event.
(cherry picked from commit 07548f13947a212dcc020d52fe0ad679255121e2)
2008-08-26 20:19:35 -07:00
Jeremy Huddleston 13a89f1920 XQuartz: Added more explanation to debug keylayout spew to cut down on report-spam.
(cherry picked from commit fcdc9f8b5abd724d75f53d48fdadbed9859e9e79)
2008-08-26 20:19:33 -07:00
Adam Jackson 64ef7ed072 Centralize declaration of ConnectionInfo. 2008-08-20 13:14:34 -04:00
Jeremy Huddleston f1f44940f1 XQuartz: Support windowItemModMask=0 or -1 to disable window shortcuts.
(cherry picked from commit 81187364e512606a6aebb95ab2967d9d420f57f2)
(cherry picked from commit f2ec79e4a159dec6481691e4dd615db01770dd7a)
2008-08-20 10:00:43 -07:00
Jeremy Huddleston 6c5612c2e1 XQuartz: Added window_item_modifiers defaults item (and option to localization) to change the modifier keys used for the windows menu.
(cherry picked from commit e4110861d307a55d9032cb83cf024ec1f294e8d7)
(cherry picked from commit fcfc05482a88696cb713c7a2ddfcf935ae8378a6)
2008-08-20 10:00:37 -07:00
Jeremy Huddleston bdc277c9b3 XQuartz: Just cleaned up formatting of event processing code... no "meat" changed...
(cherry picked from commit 745bc8ab387d6794f47d8b9dca33b4c81f6dd39c)
(cherry picked from commit a28a2be52478a1557a363140f7bd70ececf144dc)
2008-08-20 10:00:32 -07:00
Jeremy Huddleston ed42108920 XQuartz: Added appkit_modifiers defaults option which users can set to 'rcommand' to get access to the input menu with right command
(cherry picked from commit 02af74d7a5a7225f408915254c40856159dc7f19)
(cherry picked from commit 2da32894dff8340f6ca7c980277fca7ec835a193)
2008-08-20 10:00:27 -07:00
Jeremy Huddleston be06961312 XQuartz: More input fixes
stuck-modifier fixes (capslock)
3button-emulation now doesn't send the modifier key with the click
Added other options to fake_button2 and fake_button3 defaults options:
	({l,r}{control,alt,command,shift})
(cherry picked from commit 8fb6a1cf44c35a20dfb0c05c9824f94898f88da7)
(cherry picked from commit ae9c1b3cfb3874b4d1251681c24bda91c398bcab)
2008-08-20 10:00:20 -07:00