VirtualBox

Changeset 11408 in vbox


Ignore:
Timestamp:
Aug 13, 2008 7:26:26 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
34710
Message:

RDP clipboard fixes: serialize data reading and annoncements of new data from a RDP client.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedClipboard/service.cpp

    r9435 r11408  
    8080static VBOXCLIPBOARDCLIENTDATA *g_pClient;
    8181
     82/* Serialization of data reading and format announcements from the RDP client. */
     83static bool g_fReadingData = false;
     84static bool g_fDelayedAnnouncement = false;
     85static uint32_t g_u32DelayedFormats = 0;
     86
    8287static uint32_t vboxSvcClipboardMode (void)
    8388{
     
    472477                            parms.cbData = cb;
    473478                           
     479                            g_fReadingData = true;
    474480                            rc = g_pfnExtension (g_pvExtension, VBOX_CLIPBOARD_EXT_FN_DATA_READ, &parms, sizeof (parms));
     481                            LogFlow(("DATA: g_fDelayedAnnouncement = %d, g_u32DelayedFormats = 0x%x\n", g_fDelayedAnnouncement, g_u32DelayedFormats));
     482                            if (g_fDelayedAnnouncement)
     483                            {
     484                                vboxSvcClipboardReportMsg (g_pClient, VBOX_SHARED_CLIPBOARD_HOST_MSG_FORMATS, g_u32DelayedFormats);
     485                                g_fDelayedAnnouncement = false;
     486                                g_u32DelayedFormats = 0;
     487                            }
     488                            g_fReadingData = false;
    475489                           
    476490                            if (VBOX_SUCCESS (rc))
     
    692706            case VBOX_CLIPBOARD_EXT_FN_FORMAT_ANNOUNCE:
    693707            {
    694                 vboxSvcClipboardReportMsg (g_pClient, VBOX_SHARED_CLIPBOARD_HOST_MSG_FORMATS, u32Format);
     708                LogFlow(("ANNOUNCE: g_fReadingData = %d\n", g_fReadingData));
     709                if (g_fReadingData)
     710                {
     711                    g_fDelayedAnnouncement = true;
     712                    g_u32DelayedFormats = u32Format;
     713                }
     714                else
     715                {
     716                    vboxSvcClipboardReportMsg (g_pClient, VBOX_SHARED_CLIPBOARD_HOST_MSG_FORMATS, u32Format);
     717                }
    695718            } break;
    696719
Note: See TracChangeset for help on using the changeset viewer.

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