From: VMware, Inc <> Date: Mon, 20 Sep 2010 18:03:29 +0000 (-0700) Subject: Unregister legacy backdoor in X11 UI class destructor. X-Git-Tag: stable-8.6.0~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dddf5ecaca6d5e9a177b7af97e42f18ceb41d2df;p=thirdparty%2Fopen-vm-tools.git Unregister legacy backdoor in X11 UI class destructor. The legacy backdoor copy paste (used by ESX) is registered in an Init function of the X11 UI class. We should only unregister the legacy copy paste when this class is destructed. Up to now, were were doing it as a side effect of resetting dndcp version 3 and higher in response to a reset signal from the plugin framework. This would cause the backdoor copypaste code to unregister at reset without being registered once again because the registration only happened in Init. Signed-off-by: Marcelo Vanzin --- diff --git a/open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp b/open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp index e393d5c33..c36ffe4bb 100644 --- a/open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp +++ b/open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp @@ -80,7 +80,7 @@ CopyPasteDnDX11::CopyPasteDnDX11() : /** * - * Initialize Win32 platform DnD/CP. Initialize OLE, and create detection + * Initialize Win32 platform DnD/CP. Initialize Gtk+, and create detection * windows. * * @param[in] ctx tools app context. @@ -133,6 +133,12 @@ CopyPasteDnDX11::~CopyPasteDnDX11() if (m_main) { delete m_main; } + + /* + * Legacy CP. + */ + CopyPaste_Unregister(gUserMainWidget); + if (gUserMainWidget) { gtk_widget_destroy(gUserMainWidget); } @@ -249,11 +255,6 @@ CopyPasteDnDX11::UnregisterCP() delete m_copyPasteUI; m_copyPasteUI = NULL; } - - /* - * Legacy CP. - */ - CopyPaste_Unregister(gUserMainWidget); wrapper->SetCPIsRegistered(FALSE); wrapper->SetCPVersion(-1); }