[PATCH 3/3] winemac: Periodically check for pasteboard changes using a timer.

Ken Thomases ken at codeweavers.com
Wed Jan 11 11:06:22 CST 2017


Signed-off-by: Ken Thomases <ken at codeweavers.com>
---
 dlls/winemac.drv/clipboard.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/dlls/winemac.drv/clipboard.c b/dlls/winemac.drv/clipboard.c
index 7d9ae0a..fc1589f 100644
--- a/dlls/winemac.drv/clipboard.c
+++ b/dlls/winemac.drv/clipboard.c
@@ -1664,6 +1664,7 @@ static void grab_win32_clipboard(BOOL changed)
     last_clipboard_update = GetTickCount64();
     set_win32_clipboard_formats_from_mac_pasteboard(types);
     CloseClipboard();
+    SetTimer(clipboard_hwnd, 1, CLIPBOARD_UPDATE_DELAY, NULL);
 }
 
 
@@ -1713,9 +1714,14 @@ static LRESULT CALLBACK clipboard_wndproc(HWND hwnd, UINT msg, WPARAM wp, LPARAM
         case WM_RENDERFORMAT:
             render_format(wp);
             break;
+        case WM_TIMER:
+            if (!is_clipboard_owner) break;
+            grab_win32_clipboard(FALSE);
+            break;
         case WM_DESTROYCLIPBOARD:
             TRACE("WM_DESTROYCLIPBOARD: lost ownership\n");
             is_clipboard_owner = FALSE;
+            KillTimer(hwnd, 1);
             break;
     }
     return DefWindowProcW(hwnd, msg, wp, lp);
-- 
2.10.2




More information about the wine-patches mailing list