[Xorg-commit] xc/programs/Xserver/hw/xwin winclipboard.h,1.1.4.1.2.4,1.1.4.1.2.5 winclipboardthread.c,1.1.4.1.2.5,1.1.4.1.2.6 winclipboardwndproc.c,1.1.4.1.2.6,1.1.4.1.2.7 winclipboardwrappers.c,1.1.2.4,1.1.2.5
Harold L Hunt II
xorg-commit at pdx.freedesktop.org
Mon Jan 12 03:10:53 EET 2004
Committed by: harold
Update of /cvs/xorg/xc/programs/Xserver/hw/xwin
In directory pdx:/tmp/cvs-serv21437
Modified Files:
Tag: CYGWIN
winclipboard.h winclipboardthread.c winclipboardwndproc.c
winclipboardwrappers.c
Log Message:
XWin Server - Sync with 4.3.0-38 release. Minor fixes to clipboard code.
Index: winclipboard.h
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xwin/winclipboard.h,v
retrieving revision 1.1.4.1.2.4
retrieving revision 1.1.4.1.2.5
diff -u -d -r1.1.4.1.2.4 -r1.1.4.1.2.5
--- winclipboard.h 10 Jan 2004 07:50:57 -0000 1.1.4.1.2.4
+++ winclipboard.h 12 Jan 2004 01:10:50 -0000 1.1.4.1.2.5
@@ -1,3 +1,5 @@
+#ifndef _WINCLIPBOARD_H_
+#define _WINCLIPBOARD_H_
/*
*Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
*
@@ -29,10 +31,6 @@
*/
/* $XFree86: xc/programs/Xserver/hw/xwin/winclipboard.h,v 1.3 2003/10/02 13:30:10 eich Exp $ */
-
-#ifndef _WINCLIPBOARD_H_
-#define _WINCLIPBOARD_H_
-
/* Standard library headers */
#include <assert.h>
#include <stdio.h>
Index: winclipboardthread.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xwin/winclipboardthread.c,v
retrieving revision 1.1.4.1.2.5
retrieving revision 1.1.4.1.2.6
diff -u -d -r1.1.4.1.2.5 -r1.1.4.1.2.6
--- winclipboardthread.c 11 Jan 2004 07:39:03 -0000 1.1.4.1.2.5
+++ winclipboardthread.c 12 Jan 2004 01:10:50 -0000 1.1.4.1.2.6
@@ -256,6 +256,10 @@
pthread_exit (NULL);
}
+#if 0
+ ErrorF ("winClipboardProc - iWindow: %d\n", iWindow);
+#endif
+
/* Save the window in the screen privates */
g_iClipboardWindow = iWindow;
Index: winclipboardwndproc.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xwin/winclipboardwndproc.c,v
retrieving revision 1.1.4.1.2.6
retrieving revision 1.1.4.1.2.7
diff -u -d -r1.1.4.1.2.6 -r1.1.4.1.2.7
--- winclipboardwndproc.c 11 Jan 2004 02:49:14 -0000 1.1.4.1.2.6
+++ winclipboardwndproc.c 12 Jan 2004 01:10:50 -0000 1.1.4.1.2.7
@@ -164,8 +164,54 @@
&& !IsClipboardFormatAvailable (CF_UNICODETEXT))
{
ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Clipboard does not contain CF_TEXT nor CF_UNICODETEXT; "
- "not taking ownership of X11 selections.\n");
+ "Clipboard does not contain CF_TEXT nor "
+ "CF_UNICODETEXT.\n");
+
+ /*
+ * We need to make sure that the X Server has processed
+ * previous XSetSelectionOwner messages.
+ */
+ XSync (pDisplay, FALSE);
+
+ /* Release PRIMARY selection if owned */
+ iReturn = XGetSelectionOwner (pDisplay, XA_PRIMARY);
+ if (iReturn == g_iClipboardWindow)
+ {
+#if 0
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "PRIMARY selection is owned by us.\n");
+#endif
+ XSetSelectionOwner (pDisplay,
+ XA_PRIMARY,
+ None,
+ CurrentTime);
+ }
+ else if (BadWindow == iReturn || BadAtom == iReturn)
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "XGetSelection failed for PRIMARY: %d\n", iReturn);
+
+ /* Release CLIPBOARD selection if owned */
+ iReturn = XGetSelectionOwner (pDisplay,
+ XInternAtom (pDisplay,
+ "CLIPBOARD",
+ FALSE));
+ if (iReturn == g_iClipboardWindow)
+ {
+#if 0
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "CLIPBOARD selection is owned by us.\n");
+#endif
+ XSetSelectionOwner (pDisplay,
+ XInternAtom (pDisplay,
+ "CLIPBOARD",
+ FALSE),
+ None,
+ CurrentTime);
+ }
+ else if (BadWindow == iReturn || BadAtom == iReturn)
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "XGetSelection failed for CLIPBOARD: %d\n", iReturn);
+
return 0;
}
Index: winclipboardwrappers.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xwin/Attic/winclipboardwrappers.c,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- winclipboardwrappers.c 11 Jan 2004 02:49:14 -0000 1.1.2.4
+++ winclipboardwrappers.c 12 Jan 2004 01:10:50 -0000 1.1.2.5
@@ -32,7 +32,6 @@
#include "dixstruct.h"
#include "Xatom.h"
-
/*
* Constants
*/
@@ -46,7 +45,7 @@
* Globals
*/
-static Window g_iOwners[CLIP_NUM_SELECTIONS];
+static Window g_iOwners[CLIP_NUM_SELECTIONS] = {None};
/*
@@ -332,7 +331,7 @@
/* Adjust last owned selection */
if (None != g_iOwners[CLIP_OWN_CLIPBOARD])
- g_atomLastOwnedSelection = MakeAtom ("CLIPBOARD", 10, FALSE);
+ g_atomLastOwnedSelection = MakeAtom ("CLIPBOARD", 9, FALSE);
else
g_atomLastOwnedSelection = None;
}
@@ -340,7 +339,7 @@
/* Save new selection owner or None */
g_iOwners[CLIP_OWN_PRIMARY] = stuff->window;
}
- else if (MakeAtom ("CLIPBOARD", 10, FALSE) == stuff->selection)
+ else if (MakeAtom ("CLIPBOARD", 9, FALSE) == stuff->selection)
{
/* Look for owned -> not owned transition */
if (None == stuff->window
@@ -355,6 +354,7 @@
g_atomLastOwnedSelection = None;
}
+ /* Save new selection owner or None */
g_iOwners[CLIP_OWN_CLIPBOARD] = stuff->window;
}
else
@@ -391,7 +391,9 @@
/* Abort if no window at this point */
if (None == stuff->window)
{
+#if 0
ErrorF ("winProcSetSelectionOwner - No window, returning.\n");
+#endif
goto winProcSetSelectionOwner_Done;
}
More information about the xorg-commit
mailing list