Moved more things to the X11 driver.

diff --git a/windows/x11drv/clipboard.c b/windows/x11drv/clipboard.c
index 39c1f47..7d98737 100644
--- a/windows/x11drv/clipboard.c
+++ b/windows/x11drv/clipboard.c
@@ -38,19 +38,21 @@
  */
 static void X11DRV_CLIPBOARD_CheckSelection(WND* pWnd)
 {
-    TRACE(clipboard,"\tchecking %08x\n", (unsigned)pWnd->window);
+    TRACE(clipboard,"\tchecking %08x\n",
+        (unsigned) X11DRV_WND_GetXWindow(pWnd)
+    );
 
     if( selectionAcquired && selectionWindow != None &&
-        pWnd->window == selectionWindow )
+        X11DRV_WND_GetXWindow(pWnd) == selectionWindow )
     {
 	selectionPrevWindow = selectionWindow;
 	selectionWindow = None;
 
 	if( pWnd->next ) 
-	    selectionWindow = pWnd->next->window;
+	    selectionWindow = X11DRV_WND_GetXWindow(pWnd->next);
 	else if( pWnd->parent )
              if( pWnd->parent->child != pWnd ) 
-                 selectionWindow = pWnd->parent->child->window;
+                 selectionWindow = X11DRV_WND_GetXWindow(pWnd->parent->child);
 
 	TRACE(clipboard,"\tswitching selection from %08x to %08x\n", 
                     (unsigned)selectionPrevWindow, (unsigned)selectionWindow);
@@ -208,7 +210,9 @@
     if( !selectionAcquired && 
 	(wFormat == CF_TEXT || wFormat == CF_OEMTEXT) )
     {
-	owner = X11DRV_WND_GetXWindow( hWndClipWindow ? hWndClipWindow : AnyPopup32() );
+	owner = X11DRV_WND_FindXWindow( 
+	    WIN_FindWndPtr( hWndClipWindow ? hWndClipWindow : AnyPopup32() ) 
+	);
 
 	TSXSetSelectionOwner(display,XA_PRIMARY, owner, CurrentTime);
 	if( TSXGetSelectionOwner(display,XA_PRIMARY) == owner )
@@ -240,9 +244,10 @@
    * CLIPBOARD_ReadSelection() will be invoked 
    * from the SelectionNotify event handler */
 
-    TSXConvertSelection(display,XA_PRIMARY,XA_STRING,
-                      TSXInternAtom(display,"PRIMARY_TEXT",False),
-                      X11DRV_WND_GetXWindow(hWnd),CurrentTime);
+    TSXConvertSelection(display, XA_PRIMARY, XA_STRING,
+			TSXInternAtom(display, "PRIMARY_TEXT", False),
+			X11DRV_WND_FindXWindow( WIN_FindWndPtr( hWnd ) ),
+			CurrentTime);
 
   /* wait until SelectionNotify is processed 
    *
@@ -265,10 +270,16 @@
  *
  * Called from DestroyWindow().
  */
-void X11DRV_CLIPBOARD_ResetOwner(WND *pWnd)
+void X11DRV_CLIPBOARD_ResetOwner(WND *pWnd, BOOL32 bFooBar)
 {
     LPCLIPFORMAT lpFormat = ClipFormats;
 
+    if(bFooBar && X11DRV_WND_GetXWindow(pWnd))
+      return;
+
+    if(!bFooBar && !X11DRV_WND_GetXWindow(pWnd))
+      return;
+
     TRACE(clipboard,"clipboard owner = %04x, selection = %08x\n", 
 				hWndClipOwner, (unsigned)selectionWindow);
 
@@ -293,7 +304,7 @@
 
     /* now try to salvage current selection from being destroyed by X */
 
-    if( pWnd->window ) X11DRV_CLIPBOARD_CheckSelection(pWnd);
+    if( X11DRV_WND_GetXWindow(pWnd) ) X11DRV_CLIPBOARD_CheckSelection(pWnd);
 }
 
 #endif /* !defined(X_DISPLAY_MISSING) */