VirtualBox

Changeset 82507 in vbox for trunk/src


Ignore:
Timestamp:
Dec 9, 2019 10:12:44 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
135360
Message:

VBoxTray,VBoxClient: Use '&' rather than '==' when testing format requested in VBOX_SHCL_HOST_MSG_READ_DATA, as darwin hosts may (incorrectly) request more than one format. bugref:9437

Location:
trunk/src/VBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp

    r82480 r82507  
    561561            Assert(pEvent->enmType == VBGLR3CLIPBOARDEVENTTYPE_READ_DATA);
    562562
    563             const SHCLFORMAT uFormat = (uint32_t)pEvent->u.ReadData.uFmt;
     563            const SHCLFORMAT fFormat = (uint32_t)pEvent->u.ReadData.uFmt;
    564564
    565565            HANDLE hClip = NULL;
    566566
    567             LogFlowFunc(("SHCL_WIN_WM_READ_DATA: uFormat=0x%x\n", uFormat));
     567            LogFlowFunc(("SHCL_WIN_WM_READ_DATA: fFormat=%#x\n", fFormat));
    568568
    569569            int rc = SharedClipboardWinOpen(hwnd);
    570570            if (RT_SUCCESS(rc))
    571571            {
    572                 if (uFormat == VBOX_SHCL_FMT_BITMAP)
     572                if (fFormat & VBOX_SHCL_FMT_BITMAP)
    573573                {
    574574                    hClip = GetClipboardData(CF_DIB);
     
    579579                        {
    580580                            SHCLDATABLOCK dataBlock;
    581                             dataBlock.uFormat = uFormat;
     581                            dataBlock.uFormat = fFormat;
    582582                            dataBlock.pvData  = lp;
    583583                            dataBlock.cbData  = (uint32_t)GlobalSize(hClip);
     
    593593                    }
    594594                }
    595                 else if (uFormat == VBOX_SHCL_FMT_UNICODETEXT)
     595                else if (fFormat & VBOX_SHCL_FMT_UNICODETEXT)
    596596                {
    597597                    hClip = GetClipboardData(CF_UNICODETEXT);
     
    602602                        {
    603603                            SHCLDATABLOCK dataBlock;
    604                             dataBlock.uFormat = uFormat;
     604                            dataBlock.uFormat = fFormat;
    605605                            dataBlock.pvData  = uniString;
    606606                            dataBlock.cbData  = ((uint32_t)lstrlenW(uniString) + 1) * 2;
     
    616616                    }
    617617                }
    618                 else if (uFormat == VBOX_SHCL_FMT_HTML)
     618                else if (fFormat & VBOX_SHCL_FMT_HTML)
    619619                {
    620620                    UINT format = RegisterClipboardFormat(SHCL_WIN_REGFMT_HTML);
     
    629629                            {
    630630                                SHCLDATABLOCK dataBlock;
    631                                 dataBlock.uFormat = uFormat;
     631                                dataBlock.uFormat = fFormat;
    632632                                dataBlock.pvData  = lp;
    633633                                dataBlock.cbData  = (uint32_t)GlobalSize(hClip);
  • trunk/src/VBox/GuestHost/SharedClipboard/clipboard-x11.cpp

    r82449 r82507  
    22602260    SHCLX11CTX       *pCtx = pReq->mpCtx;
    22612261
    2262     LogFlowFunc(("pReq->mFormat = %02X\n", pReq->mFormat));
     2262    LogFlowFunc(("pReq->mFormat = %02x\n", pReq->mFormat));
    22632263
    22642264    int rc = VERR_NO_DATA; /* VBox thinks we have data and we don't. */
    22652265
    2266     if (pReq->mFormat == VBOX_SHCL_FMT_UNICODETEXT)
     2266    if (pReq->mFormat & VBOX_SHCL_FMT_UNICODETEXT)
    22672267    {
    22682268        pReq->mX11Format = pCtx->X11TextFormat;
     
    22732273        }
    22742274    }
    2275     else if (pReq->mFormat == VBOX_SHCL_FMT_BITMAP)
     2275    else if (pReq->mFormat & VBOX_SHCL_FMT_BITMAP)
    22762276    {
    22772277        pReq->mX11Format = pCtx->X11BitmapFormat;
     
    22822282        }
    22832283    }
    2284     else if (pReq->mFormat == VBOX_SHCL_FMT_HTML)
     2284    else if (pReq->mFormat & VBOX_SHCL_FMT_HTML)
    22852285    {
    22862286        pReq->mX11Format = pCtx->X11HTMLFormat;
     
    22922292    }
    22932293#ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS
    2294     else if (pReq->mFormat == VBOX_SHCL_FMT_URI_LIST)
     2294    else if (pReq->mFormat & VBOX_SHCL_FMT_URI_LIST)
    22952295    {
    22962296        pReq->mX11Format = pCtx->X11URIListFormat;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette