• Ken Thomases's avatar
    winemac: Ignore clipboard updates provoked by our own call to GetClipboardData(). · c95d2de3
    Ken Thomases authored
    During a call to GetClipboardData(), the app may be asked to render the data
    for a promised format.  This will cause us to receive WM_CLIPBOARDUPDATE.
    
    Almost always, the app will have just rendered the requested format and not
    made any other changes.  Therefore, we don't need to rebuild the Mac pasteboard
    from the Win32 clipboard.  Doing so can cause a race with the other Mac app
    which is querying the pasteboard (for a paste operation, for example).  We
    basically delete the data we _just_ added and rebuild the list of available
    types.  The symptom is that the other Mac app sees the available types change
    and maybe be incomplete.
    
    In theory, the Windows app could make other changes to the clipboard and this
    change would cause us to fail to convey them to the Mac pasteboard.  I consider
    that very unlikely and the tradeoff to improve the common case is worth it.
    Signed-off-by: 's avatarKen Thomases <ken@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    c95d2de3
clipboard.c 67.9 KB