user32: Partially fix clipboard viewer infinite recursion bug.

Alexander Scott-Johns alexander.scott.johns at googlemail.com
Fri Jan 28 10:29:19 CST 2011


-------------- next part --------------
From f5031ac9e46979fa6b852ed5e87c5791eb6c5e50 Mon Sep 17 00:00:00 2001
From: Alexander Scott-Johns <alexander.scott.johns at googlemail.com>
Date: Tue, 25 Jan 2011 22:38:49 +0000
Subject: user32: Partially fix clipboard viewer infinite recursion bug.

A clipboard viewer which changes the clipboard will get stuck in an
infinite loop in Wine; this patch fixes that behaviour.

The clipboard viewer test for this still fails, as it tests what happens
when the clipboard is changed repeatedly.
---
 dlls/user32/clipboard.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/user32/clipboard.c b/dlls/user32/clipboard.c
index 99733c3..7b84686 100644
--- a/dlls/user32/clipboard.c
+++ b/dlls/user32/clipboard.c
@@ -291,7 +291,7 @@ BOOL WINAPI CloseClipboard(void)
 {
     BOOL bRet = FALSE;
 
-    TRACE("(%d)\n", bCBHasChanged);
+    TRACE("() Changed=%d\n", bCBHasChanged);
 
     if (CLIPBOARD_CloseClipboard())
     {
@@ -301,10 +301,10 @@ BOOL WINAPI CloseClipboard(void)
 
             USER_Driver->pEndClipboardUpdate();
 
+            bCBHasChanged = FALSE;
+
             if (hWndViewer)
                 SendMessageW(hWndViewer, WM_DRAWCLIPBOARD, (WPARAM) GetClipboardOwner(), 0);
-
-            bCBHasChanged = FALSE;
         }
 
         bRet = TRUE;
-- 
1.7.0.4


More information about the wine-patches mailing list