- use global atoms for the format ids
- add timeout when calling XCheckTypedWindowEvent
- fix broken IsClipboardFormatAvailable; it tried to do a trick with
EnumClipboardFormats by making incorrect assumptions
- in X11DRV_IsClipboardFormatAvailable do a quick exit if no one owns
the selection
- add 1 second *minimum* time lapse between XSelectionOwner calls
- sync clipboard ownership between different wine processes
- prevents apps from getting into wierd state where they thought they
didn't own the selection but they did and as a result queried
themselves for available selection data
diff --git a/server/protocol.def b/server/protocol.def
index fb820a8..bb3e37a 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2124,3 +2124,28 @@
int next_unicode; /* is the next a unicode hook? */
VARARG(module,unicode_str); /* module name */
@END
+
+
+/* Set/get clipboard information */
+@REQ(set_clipboard_info)
+ unsigned int flags; /* flags for fields to set (see below) */
+ user_handle_t clipboard; /* clipboard window */
+ user_handle_t owner; /* clipboard owner */
+ user_handle_t viewer; /* first clipboard viewer */
+ unsigned int seqno; /* change sequence number */
+@REPLY
+ unsigned int flags; /* status flags (see below) */
+ user_handle_t old_clipboard; /* old clipboard window */
+ user_handle_t old_owner; /* old clipboard owner */
+ user_handle_t old_viewer; /* old clipboard viewer */
+ unsigned int seqno; /* current sequence number */
+@END
+
+#define SET_CB_OPEN 0x001
+#define SET_CB_OWNER 0x002
+#define SET_CB_VIEWER 0x004
+#define SET_CB_SEQNO 0x008
+#define SET_CB_RELOWNER 0x010
+#define SET_CB_CLOSE 0x020
+#define CB_OPEN 0x040
+#define CB_OWNER 0x080