diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c index 6b5c38d92..88bc85a44 100644 --- a/hw/xwin/InitOutput.c +++ b/hw/xwin/InitOutput.c @@ -66,24 +66,11 @@ typedef WINAPI HRESULT(*SHGETFOLDERPATHPROC) (HWND hwndOwner, /* * References to external symbols */ -#ifdef XWIN_CLIPBOARD -extern Bool g_fUnicodeClipboard; -extern Bool g_fClipboardLaunched; -extern Bool g_fClipboardStarted; -extern pthread_t g_ptClipboardProc; -extern HWND g_hwndClipboard; -extern Bool g_fClipboard; -#endif /* * Function prototypes */ -#ifdef XWIN_CLIPBOARD -static void - winClipboardShutdown(void); -#endif - static Bool winCheckDisplayNumber(void); @@ -125,31 +112,6 @@ static PixmapFormatRec g_PixmapFormats[] = { const int NUMFORMATS = sizeof(g_PixmapFormats) / sizeof(g_PixmapFormats[0]); -#ifdef XWIN_CLIPBOARD -static void -winClipboardShutdown(void) -{ - /* Close down clipboard resources */ - if (g_fClipboard && g_fClipboardLaunched && g_fClipboardStarted) { - /* Synchronously destroy the clipboard window */ - if (g_hwndClipboard != NULL) { - SendMessage(g_hwndClipboard, WM_DESTROY, 0, 0); - /* NOTE: g_hwndClipboard is set to NULL in winclipboardthread.c */ - } - else - return; - - /* Wait for the clipboard thread to exit */ - pthread_join(g_ptClipboardProc, NULL); - - g_fClipboardLaunched = FALSE; - g_fClipboardStarted = FALSE; - - winDebug("winClipboardShutdown - Clipboard thread has exited.\n"); - } -} -#endif - static const ExtensionModule xwinExtensions[] = { #ifdef GLXEXT { GlxExtensionInit, "GLX", &noGlxExtension }, diff --git a/hw/xwin/win.h b/hw/xwin/win.h index a738a5940..1a882f4aa 100644 --- a/hw/xwin/win.h +++ b/hw/xwin/win.h @@ -794,6 +794,9 @@ Bool void winFixClipboardChain(void); + +void + winClipboardShutdown(void); #endif /* diff --git a/hw/xwin/winclipboardinit.c b/hw/xwin/winclipboardinit.c index 157006dab..e6bbf17e2 100644 --- a/hw/xwin/winclipboardinit.c +++ b/hw/xwin/winclipboardinit.c @@ -46,10 +46,17 @@ int winProcSetSelectionOwner(ClientPtr /* client */ ); * References to external symbols */ -extern pthread_t g_ptClipboardProc; extern winDispatchProcPtr winProcSetSelectionOwnerOrig; extern Bool g_fClipboard; extern HWND g_hwndClipboard; +extern Bool g_fClipboardLaunched; +extern Bool g_fClipboardStarted; + +/* + * Local variables + */ + +static pthread_t g_ptClipboardProc; /* * Intialize the Clipboard module @@ -76,6 +83,29 @@ winInitClipboard(void) return TRUE; } +void +winClipboardShutdown(void) +{ + /* Close down clipboard resources */ + if (g_fClipboard && g_fClipboardLaunched && g_fClipboardStarted) { + /* Synchronously destroy the clipboard window */ + if (g_hwndClipboard != NULL) { + SendMessage(g_hwndClipboard, WM_DESTROY, 0, 0); + /* NOTE: g_hwndClipboard is set to NULL in winclipboardthread.c */ + } + else + return; + + /* Wait for the clipboard thread to exit */ + pthread_join(g_ptClipboardProc, NULL); + + g_fClipboardLaunched = FALSE; + g_fClipboardStarted = FALSE; + + winDebug("winClipboardShutdown - Clipboard thread has exited.\n"); + } +} + /* * Create the Windows window that we use to receive Windows messages */ diff --git a/hw/xwin/winglobals.c b/hw/xwin/winglobals.c index b9ad294d5..b0d6ffc3c 100644 --- a/hw/xwin/winglobals.c +++ b/hw/xwin/winglobals.c @@ -96,7 +96,6 @@ Bool g_fUnicodeClipboard = TRUE; Bool g_fClipboard = TRUE; Bool g_fClipboardLaunched = FALSE; Bool g_fClipboardStarted = FALSE; -pthread_t g_ptClipboardProc; HWND g_hwndClipboard = NULL; void *g_pClipboardDisplay = NULL; Window g_iClipboardWindow = None;