diff --git a/gui/src/TRootCanvas.cxx b/gui/src/TRootCanvas.cxx index fa39ef05cca7f64c13e8eed8dd5eff4fa3a1f0d0..847104e116316b8275efe5196a23846a5b538259 100644 --- a/gui/src/TRootCanvas.cxx +++ b/gui/src/TRootCanvas.cxx @@ -1,4 +1,4 @@ -// @(#)root/gui:$Name: $:$Id: TRootCanvas.cxx,v 1.104 2006/07/03 16:10:45 brun Exp $ +// @(#)root/gui:$Name: $:$Id: TRootCanvas.cxx,v 1.105 2006/07/04 09:24:43 antcheva Exp $ // Author: Fons Rademakers 15/01/98 /************************************************************************* @@ -633,9 +633,9 @@ void TRootCanvas::Close() { // Called via TCanvasImp interface by TCanvas. - if (fEditor) fEditor->DeleteEditors(); - if (TVirtualPadEditor::GetPadEditor(kFALSE) != 0) - TVirtualPadEditor::Terminate(); + TVirtualPadEditor* gged = TVirtualPadEditor::GetPadEditor(kFALSE); + if(gged && gged->GetCanvas() == fCanvas) + gged->Hide(); gVirtualX->CloseWindow(); } @@ -645,9 +645,9 @@ void TRootCanvas::ReallyDelete() { // Really delete the canvas and this GUI. - if (fEditor) fEditor->DeleteEditors(); - if (TVirtualPadEditor::GetPadEditor(kFALSE) != 0) - TVirtualPadEditor::Terminate(); + TVirtualPadEditor* gged = TVirtualPadEditor::GetPadEditor(kFALSE); + if(gged && gged->GetCanvas() == fCanvas) + gged->Hide(); TVirtualPad *savepad = gPad; gPad = 0; // hide gPad from CINT @@ -861,14 +861,11 @@ again: PrintCanvas(); break; case kFileCloseCanvas: - if (!fEditor && (TVirtualPadEditor::GetPadEditor(kFALSE) != 0)) - TVirtualPadEditor::Terminate(); SendCloseMessage(); break; case kFileQuit: if (!gApplication->ReturnFromRun()) { - if (fEditor) fEditor->DeleteEditors(); - if (!fEditor && (TVirtualPadEditor::GetPadEditor(kFALSE) != 0)) + if ((TVirtualPadEditor::GetPadEditor(kFALSE) != 0)) TVirtualPadEditor::Terminate(); delete this; } @@ -914,7 +911,6 @@ again: // Handle View menu items... case kViewEditor: fCanvas->ToggleEditor(); - if (!fEditor) CreateEditor(); break; case kViewToolbar: fCanvas->ToggleToolBar(); @@ -1342,14 +1338,16 @@ void TRootCanvas::ShowEditor(Bool_t show) if (show) { if (!fEditor) CreateEditor(); - if (TVirtualPadEditor::GetPadEditor(kFALSE) != 0) { - TVirtualPadEditor::HideEditor(); + TVirtualPadEditor* gged = TVirtualPadEditor::GetPadEditor(kFALSE); + if(gged && gged->GetCanvas() == fCanvas){ + gged->Hide(); } if (!fViewMenu->IsEntryChecked(kViewToolbar) || fToolDock->IsUndocked()) { ShowFrame(fHorizontal1); h = h + s; } fMainFrame->ShowFrame(fEditorFrame); + fEditor->Show(); fViewMenu->CheckEntry(kViewEditor); w = w + e; } else { @@ -1357,6 +1355,7 @@ void TRootCanvas::ShowEditor(Bool_t show) HideFrame(fHorizontal1); h = h - s; } + if (fEditor) fEditor->Hide(); fMainFrame->HideFrame(fEditorFrame); fViewMenu->UnCheckEntry(kViewEditor); w = w - e; @@ -1371,15 +1370,11 @@ void TRootCanvas::CreateEditor() { // Create embedded editor. - if (TVirtualPadEditor::GetPadEditor(kFALSE) != 0) { - TVirtualPadEditor::HideEditor(); - } - fEditorFrame->SetEditDisabled(kEditEnable); fEditorFrame->SetEditable(); gPad = Canvas(); // next two lines are related to the old editor - TString show = gEnv->GetValue("Canvas.ShowEditor","false"); + Int_t show = gEnv->GetValue("Canvas.ShowEditor", 0); gEnv->SetValue("Canvas.ShowEditor","true"); fEditor = TVirtualPadEditor::LoadEditor(); fEditor->SetGlobal(kFALSE); @@ -1387,7 +1382,7 @@ void TRootCanvas::CreateEditor() fEditorFrame->SetEditable(kFALSE); // next line is related to the old editor - if (show == "false") gEnv->SetValue("Canvas.ShowEditor","false"); + if (show == 0) gEnv->SetValue("Canvas.ShowEditor","false"); } //______________________________________________________________________________