Hi Ernesto, mod now in CVS. Thanks. Cheers, Fons. On Sat, 2002-06-15 at 10:58, Ernesto Lopez wrote: > Hi rooters, > > I found that when create a TGFileDialog and you click over a directory and > then click the open buttom there is: > *** Break *** segmentation violation > instead of open the directory as the case of a double click. > > I changed in: > Bool_t TGFileDialog::ProcessMessage(Long_t msg, Long_t parm1, Long_t) > the case kCM_BUTTON and kTE_ENTER by a pice of code from > kCT_ITEMDBLCLICK and it works OK. > > ///////////////////////////////////// > > case kCM_BUTTON: > > switch (parm1) { > case kIDF_OK: > // same code as under kTE_ENTER > if (fTbfname->GetTextLength() == 0) { > const char *txt = "Please provide file name or use > \"Cancel\""; > new TGMsgBox(fClient->GetRoot(), GetMainFrame(), > "Missing File Name", txt, > kMBIconExclamation, > kMBOk); > return kTRUE; > } > > #ifndef WIN32 > if (fFc->NumSelected() == 1) { > f = (TGFileItem *) fFc->GetNextSelected(&p); > if (S_ISDIR(f->GetType())) { > > fFc->ChangeDirectory(f->GetItemName()->GetString()); > fTreeLB->Update(fFc->GetDirectory()); > if (fFileInfo->fIniDir) delete [] > fFileInfo->fIniDir; > fFileInfo->fIniDir = > StrDup(fFc->GetDirectory()); > } else { > fFileInfo->fFilename = > gSystem->ConcatFileName(fFc->GetDirectory(), > > fTbfname->GetString()); > delete this; > } > } > #else > #ifdef GDK_WIN32 > if (fFc->NumSelected() == 1) { > f = (TGFileItem *) fFc->GetNextSelected(&p); > if ((f->GetType()) & _S_IFDIR) { > > fFc->ChangeDirectory(f->GetItemName()->GetString()); > fTreeLB->Update(fFc->GetDirectory()); > } else { > fFileInfo->fFilename = > gSystem->ConcatFileName(fFc->GetDirectory(), > > fTbfname->GetString()); > delete this; > } > } > #endif > #endif > break; > > //////////////////////////////////////////////////////////// > > intead of: > > /////////////////////////////////////////////////////////// > > case kTE_ENTER: > // same code as under kIDF_OK > if (fTbfname->GetTextLength() == 0) { > const char *txt = "Please provide file name or use > \"Cancel\""; > new TGMsgBox(fClient->GetRoot(), GetMainFrame(), > "Missing File Name", txt, > kMBIconExclamation, > kMBOk); > return kTRUE; > } > fFileInfo->fFilename = > gSystem->ConcatFileName(fFc->GetDirectory(), > > fTbfname->GetString()); > delete this; > break; > > ////////////////////////////////////////////////// > > Cheers > Ernesto -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:57 MET