Index: trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.cc	(revision 1965)
+++ trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.cc	(revision 1966)
@@ -150,5 +150,5 @@
                            const TGWindow *p, /*const TGWindow *main,*/
                            UInt_t w, UInt_t h)
-: MGEvtDisplay(filename, "Events", p, /*main,*/ w, h), fDisplay(NULL)
+: MGEvtDisplay(filename, "Events", p, /*main,*/ w, h)
 {
     //
@@ -162,35 +162,21 @@
     AddSetupElements();
 
-    fCanvas2 = AddTab("Errors");
-    fCanvas3 = AddTab("Phot/Err");
-    fCanvas4 = AddTab("Levels");
-    fCanvas5 = AddTab("Pedestals");
+    fCanvas2[0] = fCanvas;
+    fCanvas2[1] = AddTab("Errors");
+    fCanvas2[2] = AddTab("Phot/Err");
+    fCanvas2[3] = AddTab("Levels");
+    fCanvas2[4] = AddTab("Pedestals");
 
     //
     // Show camera display for the actual geometry
     //
-    fDisplay  = new MCamDisplay(geom);
-    fDisplay2 = new MCamDisplay(geom);
-    fDisplay3 = new MCamDisplay(geom);
-    fDisplay4 = new MCamDisplay(geom);
-    fDisplay5 = new MCamDisplay(geom);
-
-    fList->Add(fDisplay);
-    fList->Add(fDisplay2);
-    fList->Add(fDisplay3);
-    fList->Add(fDisplay4);
-    fList->Add(fDisplay5);
-
-    fCanvas->cd();
-    fDisplay->Draw();
-    fCanvas2->cd();
-    fDisplay2->Draw();
-    fCanvas3->cd();
-    fDisplay3->Draw();
-    fCanvas4->cd();
-    fDisplay4->Draw();
-    fCanvas5->cd();
-    fDisplay5->Draw();
-
+    for (int i=0; i<5; i++)
+    {
+        fCanvas2[i]->cd();
+        fDisplay[i]  = new MCamDisplay(geom);
+        fDisplay[i]->Draw();
+        fCanvas2[i]->Update();
+        fList->Add(fDisplay[i]);
+    }
 
     ReadFirstEvent();
@@ -203,6 +189,6 @@
     Layout();
 
-    SetWindowName("Hillas Event Display");
-    SetIconName("Hillas");
+    SetWindowName("Image Event Display");
+    SetIconName("Image");
 
     MapWindow();
@@ -242,7 +228,5 @@
     if (fDisplayRaw)
     {
-        //
         // Get a clone of MCerPhotEvt which is made before the image cleaning
-        //
         const MClone *clone = (MClone*)GetTaskList()->FindObject("MClone");
         evt = (MCerPhotEvt*)clone->GetClone();
@@ -250,7 +234,5 @@
     else
     {
-        //
         // Get MCerPhotEvt which containes the cleaned data
-        //
         evt = (MCerPhotEvt*)plist->FindObject("MCerPhotEvt");
     }
@@ -259,19 +241,15 @@
     const MPedestalCam *ped   = (MPedestalCam*)plist->FindObject("MPedestalCam");
 
-    fDisplay->FillPhotNum(*evt);
-    fCanvas->Modified();
-    fCanvas->Update();
-    fDisplay2->FillErrorPhot(*evt);
-    fCanvas2->Modified();
-    fCanvas2->Update();
-    fDisplay3->FillRatio(*evt);
-    fCanvas3->Modified();
-    fCanvas3->Update();
-    fDisplay4->FillLevels(*evt, *clean);
-    fCanvas4->Modified();
-    fCanvas4->Update();
-    fDisplay5->FillPedestals(*ped);
-    fCanvas5->Modified();
-    fCanvas5->Update();
+    fDisplay[0]->FillPhotNum(*evt);
+    fDisplay[1]->FillErrorPhot(*evt);
+    fDisplay[2]->FillRatio(*evt);
+    fDisplay[3]->FillLevels(*evt, *clean);
+    fDisplay[4]->FillPedestals(*ped);
+
+    for (int i=0; i<5; i++)
+    {
+        fCanvas2[i]->Modified();
+        fCanvas2[i]->Update();
+    }
 }
 
Index: trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.h
===================================================================
--- trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.h	(revision 1965)
+++ trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.h	(revision 1966)
@@ -19,14 +19,6 @@
     TGListBox   *fPixelList;
 
-    MCamDisplay *fDisplay;
-    MCamDisplay *fDisplay2;
-    MCamDisplay *fDisplay3;
-    MCamDisplay *fDisplay4;
-    MCamDisplay *fDisplay5;
-
-    TCanvas *fCanvas2;
-    TCanvas *fCanvas3;
-    TCanvas *fCanvas4;
-    TCanvas *fCanvas5;
+    MCamDisplay *fDisplay[5];
+    TCanvas     *fCanvas2[5];
 
     void AddSetupElements();
Index: trunk/MagicSoft/Mars/meventdisp/MGEvtDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/meventdisp/MGEvtDisplay.cc	(revision 1965)
+++ trunk/MagicSoft/Mars/meventdisp/MGEvtDisplay.cc	(revision 1966)
@@ -216,9 +216,30 @@
     fList->Add(laycanvas);
 
-    TGCompositeFrame *frame = fEvtDisplay->AddTab(name);
-    TRootEmbeddedCanvas *canvas = new TRootEmbeddedCanvas(name+"Display", frame, 400, 400);
-    frame->AddFrame(canvas, laycanvas);
-    fList->Add(canvas);
-    return canvas->GetCanvas();
+    // Add new tab
+    TGCompositeFrame *f = fEvtDisplay->AddTab(name);
+
+    // create root embedded canvas and add it to the tab
+    TRootEmbeddedCanvas *ec = new TRootEmbeddedCanvas(name+"Display", f, f->GetWidth(), f->GetHeight());
+    f->AddFrame(ec, laycanvas);
+    fList->Add(ec);
+
+    // set background and border mode of the canvas
+    TCanvas &c = *ec->GetCanvas();
+    c.SetBorderMode(0);
+
+    // layout and map new tab
+#if ROOT_VERSION_CODE < ROOT_VERSION(3,03,00)
+    MapSubwindows();
+    Layout();
+#else
+    Layout();
+    MapSubwindows();
+#endif
+
+    // display new tab in the main frame
+    gClient->ProcessEventsFor(fEvtDisplay);
+
+    // return pointer to new canvas
+    return &c;
 }
 
