#include "dynxdr.h"
#include "ghIntegration.h"
#include "ghIntegrationInt.h"
-#include "guestCaps.h"
#include "guestrpc/ghiGetBinaryHandlers.h"
#include "guestrpc/ghiProtocolHandler.h"
#include "guestrpc/ghiStartMenu.h"
#include "unityCommon.h"
#include "util.h"
#include "xdrutil.h"
+#include "vmware/guestrpc/capabilities.h"
/*
#include "ghIntegration.h"
#include "ghIntegrationInt.h"
#include "guest_msg_def.h"
-#include "guestCaps.h"
#include "Uri.h"
#define URI_TEXTRANGE_EQUAL(textrange, str) \
(((textrange).afterLast - (textrange).first) == strlen((str)) \
#include "unityDebug.h"
#include "dynxdr.h"
#include "guestrpc/unityActive.h"
-#include "guestCaps.h"
#include "appUtil.h"
#include <stdio.h>
void
Unity_SetActiveDnDDetWnd(UnityDnD *state)
{
- UnityPlatformSetActiveDnDDetWnd(unity.up, state);
+ if (unity.up != NULL) {
+ UnityPlatformSetActiveDnDDetWnd(unity.up, state);
+ }
}
goto error;
}
- /*
- * Update the uwt with the new active desktop info.
- */
-
- UnityWindowTracker_ChangeActiveDesktop(&unity.tracker, desktopId);
-
return RpcIn_SetRetVals(result, resultLen,
"",
TRUE);
goto error;
}
+ /*
+ * Set the desktop id for this window in the tracker.
+ * We need to do this before moving the window since on MS Windows platforms
+ * moving the window will hide it and there's a danger that we may enumerate the
+ * hidden window before changing it's desktop ID. The Window tracker will ignore
+ * hidden windows on the current desktop - which ultimately can lead to this window
+ * being reaped from the tracker.
+ */
+ UnityWindowTracker_ChangeWindowDesktop(&unity.tracker, windowId, desktopId);
+
/*
* Call the platform specific function to move the window to the
* specified desktop.
goto error;
}
- UnityWindowTracker_ChangeWindowDesktop(&unity.tracker, windowId, desktopId);
-
return RpcIn_SetRetVals(result, resultLen,
"",
TRUE);