Index: trunk/MagicSoft/Mars/mhist/MHCamera.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 2265)
+++ trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 2274)
@@ -81,5 +81,5 @@
 //  Default Constructor. To be used by the root system ONLY.
 //
-MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend), fOptStat(-1)
+MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend)
 {
     SetDirectory(NULL);
@@ -478,13 +478,5 @@
     {
         opt.ReplaceAll("hist", "");
-        Int_t mode = gStyle->GetOptStat();
-        TVirtualPad *save = gPad;
-        gPad=NULL;
-        gStyle->SetOptStat(fOptStat<0 ? mode : fOptStat);
-        gPad=save;
-        TH1D::Paint(o);
-        gPad=NULL;
-        gStyle->SetOptStat(mode);
-        gPad=save;
+        TH1D::Paint(opt);
         return;
     }
@@ -496,16 +488,20 @@
     Bool_t iscol = isbox ? !opt.Contains("nocol") : 1;
 
-    THistPainter paint;
-    if (!TestBit(TH1::kNoStats))
-    {
-        paint.SetHistogram(this);
-        paint.PaintStat(fOptStat<0?gStyle->GetOptStat():fOptStat, NULL);
+    GetPainter();
+    if (fPainter)
+    {
+        if (!TestBit(TH1::kNoStats))
+        {
+            fPainter->SetHistogram(this);
+            fPainter->PaintStat(gStyle->GetOptStat(), NULL);
+        }
+
+        // Paint primitives (pixels, color legend, photons, ...)
+        if (fPainter->InheritsFrom(THistPainter::Class()))
+            ((THistPainter*)fPainter)->PaintTitle();
     }
 
     // Update Contents of the pixels and paint legend
     Update(gPad->GetLogy(), isbox, iscol);
-
-    // Paint primitives (pixels, color legend, photons, ...)
-    paint.PaintTitle();
     PaintAxisTitle();
 }
@@ -950,4 +946,16 @@
 Int_t MHCamera::DistancetoPrimitive(Int_t px, Int_t py)
 {
+    const Int_t kMaxDiff = 7;
+
+    TPaveStats *box = (TPaveStats*)gPad->GetPrimitive("stats");
+    if (box)
+    {
+        const Double_t w = box->GetY2NDC()-box->GetY1NDC();
+        box->SetX1NDC(gStyle->GetStatX()-gStyle->GetStatW());
+        box->SetY1NDC(gStyle->GetStatY()-w);
+        box->SetX2NDC(gStyle->GetStatX());
+        box->SetY2NDC(gStyle->GetStatY());
+    }
+
     if (TString(GetDrawOption()).Contains("hist", TString::kIgnoreCase))
         return TH1D::DistancetoPrimitive(px, py);
@@ -959,5 +967,14 @@
             return 0;
     }
-    return 999999;
+
+    if (!box)
+        return 999999;
+
+    const Int_t dist = box->DistancetoPrimitive(px, py);
+    if (dist > kMaxDiff)
+        return 999999;
+
+    gPad->SetSelected(box);
+    return dist;
 }
 
Index: trunk/MagicSoft/Mars/mhist/MHCamera.h
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamera.h	(revision 2265)
+++ trunk/MagicSoft/Mars/mhist/MHCamera.h	(revision 2274)
@@ -35,5 +35,5 @@
     TList         *fNotify;      //!
 
-    Int_t          fOptStat;
+    //Int_t          fOptStat;
 
     //TGStatusBar   *fStatusBar;
@@ -55,5 +55,4 @@
     };
 
-    Bool_t IsUsed(Int_t idx) const { return TESTBIT(const_cast<TArrayC&>(fUsed)[idx], kIsUsed); }
     void   SetUsed(Int_t idx)      { SETBIT(fUsed[idx], kIsUsed); }
     void   ResetUsed(Int_t idx)    { CLRBIT(fUsed[idx], kIsUsed); }
@@ -73,4 +72,6 @@
     MHCamera(const MGeomCam &geom, const char *name="", const char *title="");
     ~MHCamera();
+
+    Bool_t IsUsed(Int_t idx) const { return TESTBIT(const_cast<TArrayC&>(fUsed)[idx], kIsUsed); }
 
     //void     AddPixContent(Int_t idx) const { AddBinContent(idx+1); }
@@ -135,5 +136,5 @@
 
     void  SetAutoScale(); // *MENU*
-    void  SetOptStat(Int_t os=-1); // *MENU*
+    //void  SetOptStat(Int_t os=-1); // *MENU*
 
     void  SetPix(const Int_t pixnum, const Int_t color, Float_t min, Float_t max);      // New function added by M.Lopez in 31-01-03
@@ -150,5 +151,5 @@
 
 inline void MHCamera::SetAutoScale() { fMinimum = fMaximum = -1111; }
-inline void MHCamera::SetOptStat(Int_t os) { fOptStat = os; }
+//inline void MHCamera::SetOptStat(Int_t os) { fOptStat = os; }
 
 #endif
