From ad53ad966d809f77c3f9e7336f3246e6a742d287 Mon Sep 17 00:00:00 2001 From: Rene Brun <Rene.Brun@cern.ch> Date: Thu, 26 Apr 2007 16:42:16 +0000 Subject: [PATCH] From Bertrand Fix a problem reported by Nick West and affecting the browsing of ROOT files containing a TCanvas. git-svn-id: http://root.cern.ch/svn/root/trunk@18604 27541ba8-7e3a-0410-8455-c3a389f83636 --- gui/src/TRootBrowser.cxx | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/gui/src/TRootBrowser.cxx b/gui/src/TRootBrowser.cxx index 281b29b4ad8..559aade3c15 100644 --- a/gui/src/TRootBrowser.cxx +++ b/gui/src/TRootBrowser.cxx @@ -1,4 +1,4 @@ -// @(#)root/gui:$Name: $:$Id: TRootBrowser.cxx,v 1.106 2007/04/19 21:07:02 brun Exp $ +// @(#)root/gui:$Name: $:$Id: TRootBrowser.cxx,v 1.107 2007/04/23 09:07:27 brun Exp $ // Author: Fons Rademakers 27/02/98 /************************************************************************* @@ -256,6 +256,17 @@ public: TObject *obj, TClass *cl, EListViewMode viewMode = kLVSmallIcons); virtual TDNDdata *GetDNDdata(Atom_t) { + TObject *object = 0; + if (fObj->IsA() == TKey::Class()) + object = ((TKey *)fObj)->ReadObj(); + else + object = fObj; + if (object) { + fBuf->WriteObject(object); + fDNDData.fData = fBuf->Buffer(); + fDNDData.fDataLength = fBuf->Length(); + } + fDNDData.fDataType = gVirtualX->InternAtom("application/root", kFALSE); return &fDNDData; } @@ -266,8 +277,9 @@ public: } protected: + TObject *fObj; TBufferFile *fBuf; - TDNDdata fDNDData; + TDNDdata fDNDData; }; //______________________________________________________________________________ @@ -278,8 +290,9 @@ TRootObjItem::TRootObjItem(const TGWindow *p, const TGPicture *bpic, { // Create an icon box item. - TKey *key = 0; - TObject *object = 0; + fObj = obj; + fDNDData.fData = 0; + fDNDData.fDataLength = 0; delete [] fSubnames; fSubnames = new TGString* [2]; @@ -290,18 +303,9 @@ TRootObjItem::TRootObjItem(const TGWindow *p, const TGPicture *bpic, fBuf = new TBufferFile(TBuffer::kWrite); if (obj->IsA() == TKey::Class()) { - key = (TKey *)obj; - object = key->ReadObj(); - fBuf->WriteObject(object); - fDNDData.fData = fBuf->Buffer(); - fDNDData.fDataLength = fBuf->Length(); - fDNDData.fDataType = gVirtualX->InternAtom("application/root", kFALSE); SetDNDSource(kTRUE); } else { - fDNDData.fData = 0; - fDNDData.fDataLength = 0; - fDNDData.fDataType = 0; SetDNDSource(kFALSE); } -- GitLab