diff --git a/ged/inc/TGedFrame.h b/ged/inc/TGedFrame.h
index 6aec281a4d5bc58aabb5975f00b3f74385f573fd..ef06211578225ded10739317025558479746c15e 100644
--- a/ged/inc/TGedFrame.h
+++ b/ged/inc/TGedFrame.h
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TGedFrame.h,v 1.6 2006/05/23 04:47:36 brun Exp $
+// @(#)root/ged:$Name:  $:$Id: TGedFrame.h,v 1.7 2006/05/26 15:13:01 rdm Exp $
 // Author: Ilka  Antcheva 10/05/04
 
 /*************************************************************************
@@ -37,10 +37,11 @@ class TGTab;
 class TGedFrame : public TGCompositeFrame, public TGWidget {
 
 protected:
-   TObject      *fModel;    //selected object, if exists
-   TVirtualPad  *fPad;      //selected pad, if exists
-   Bool_t        fInit;     //init flag for setting signals/slots
-   TGTab        *fTab;      //pointer to the parent tab
+   TObject      *fModel;         //selected object, if exists
+   TVirtualPad  *fPad;           //selected pad, if exists
+   Bool_t        fInit;          //init flag for setting signals/slots
+   Bool_t        fAvoidSignal;   //flag for executing slots
+   TGTab        *fTab;           //pointer to the parent tab
 
    TGedFrame(const TGedFrame&);
    TGedFrame& operator=(const TGedFrame&);
diff --git a/ged/inc/TGraphEditor.h b/ged/inc/TGraphEditor.h
index e15c0cc5737d0b2fc6f4fd763b83cc6be363f71b..4b15a95d81c49b324586702eca77c0aa604e4a4c 100644
--- a/ged/inc/TGraphEditor.h
+++ b/ged/inc/TGraphEditor.h
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TGraphEditor.h,v 1.6 2006/04/05 08:30:26 antcheva Exp $
+// @(#)root/ged:$Name:  $:$Id: TGraphEditor.h,v 1.7 2006/04/13 13:22:31 antcheva Exp $
 // Author: Carsten Hof 28/07/04
 
 /*************************************************************************
@@ -64,7 +64,7 @@ public:
    virtual void SetModel(TVirtualPad *pad, TObject *obj, Int_t event);
 
    // slots related to graph attributes
-   virtual void DoShape(Int_t s);
+   virtual void DoShape();
    virtual void DoMarkerOnOff(Bool_t on);
    virtual void DoTitle(const char *text);
    virtual void DoGraphLineWidth();
diff --git a/ged/inc/TH1Editor.h b/ged/inc/TH1Editor.h
index dd5cfd73e31ee5d707fc3e7a83be971d250fe40b..006374ec78506d349a96ea3b1db08903426e0c0f 100644
--- a/ged/inc/TH1Editor.h
+++ b/ged/inc/TH1Editor.h
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TH1Editor.h $
+// @(#)root/ged:$Name:  $:$Id: TH1Editor.h,v 1.13 2006/01/30 17:42:05 rdm Exp $
 // Author: Carsten Hof 16/08/04
 
 /*************************************************************************
@@ -155,6 +155,7 @@ public:
    virtual void DoHistSimple();
    virtual void DoHistComplex();
    virtual void DoHistChanges();
+   virtual void DoHistView();
    virtual void DoBarOffset();
    virtual void DoBarWidth();
    virtual void DoPercent();
diff --git a/ged/inc/TH2Editor.h b/ged/inc/TH2Editor.h
index e693eda5e13432df5eb178a7e5a1500437720944..5465154ac20b904ef89324b0793cd93649cdbdd5 100644
--- a/ged/inc/TH2Editor.h
+++ b/ged/inc/TH2Editor.h
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TH2Editor.h $
+// @(#)root/ged:$Name:  $:$Id: TH2Editor.h,v 1.11 2006/01/30 17:42:05 rdm Exp $
 // Author: Carsten Hof 08/08/04
 
 /*************************************************************************
@@ -167,6 +167,7 @@ public:
    virtual void   SetModel(TVirtualPad *pad, TObject *obj, Int_t event);
 
    virtual void DoTitle(const char *text);
+   virtual void DoHistView();
    virtual void DoHistSimple();
    virtual void DoHistComplex();
    virtual void DoHistChanges();
diff --git a/ged/inc/TPadEditor.h b/ged/inc/TPadEditor.h
index e15244469c8173475d5310e48cca09a17c0a5e54..af2234acbd592f067af645409804f061c0c21d7b 100644
--- a/ged/inc/TPadEditor.h
+++ b/ged/inc/TPadEditor.h
@@ -31,6 +31,7 @@ class TGColorSelect;
 class TGCheckButton;
 class TGRadioButton;
 class TGLineWidthComboBox;
+class TGButtonGroup;
 class TPad;
 
 
@@ -52,9 +53,8 @@ protected:
    TGRadioButton       *fBmode0;           // set no pad border
    TGRadioButton       *fBmode1;           // set raised pad border mode
    TGLineWidthComboBox *fBsize;            // set pad border size
-   Bool_t               fInit;             // init flag 
-   TGCompositeFrame    *f7;                // container frame  
-   
+   TGButtonGroup       *fBgroup;           // button group of border mode
+      
    virtual void ConnectSignals2Slots();
  
 public:
diff --git a/ged/src/TArrowEditor.cxx b/ged/src/TArrowEditor.cxx
index 81faa4d2cc3643a1b0be41d8a7111167dd9e98da..fd2268646348bd285835dc5adf5beb2cf2ea9b4b 100644
--- a/ged/src/TArrowEditor.cxx
+++ b/ged/src/TArrowEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TArrowEditor.cxx,v 1.9 2006/03/20 21:43:41 pcanal Exp $
+// @(#)root/ged:$Name:  $:$Id: TArrowEditor.cxx,v 1.10 2006/04/25 08:14:20 antcheva Exp $
 // Author: Ilka Antcheva   20/10/04
 
 /*************************************************************************
@@ -141,6 +141,7 @@ void TArrowEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
 
    fArrow = (TArrow *)fModel;
+   fAvoidSignal = kTRUE;
 
    Int_t id = GetShapeEntry(fArrow->GetDrawOption());
    if (id != fOptionCombo->GetSelected())
@@ -154,6 +155,7 @@ void TArrowEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -161,6 +163,7 @@ void TArrowEditor::DoAngle()
 {
    // Slot connected to the arrow opening angle setting.
 
+   if (fAvoidSignal) return;
    fArrow->SetAngle((Float_t)fAngleEntry->GetNumber());
    fArrow->Paint(fArrow->GetDrawOption());
    Update();
@@ -171,6 +174,7 @@ void TArrowEditor::DoOption(Int_t id)
 {
    // Slot connected to the arrow shape setting.
 
+   if (fAvoidSignal) return;
    const char* opt=0;
    switch (id) {
       case 1:
@@ -215,6 +219,7 @@ void TArrowEditor::DoSize()
 {
    // Slot connected to the arrow size.
 
+   if (fAvoidSignal) return;
    fArrow->SetArrowSize(fSizeEntry->GetNumber());
    fArrow->Paint(fArrow->GetDrawOption());
    Update();
diff --git a/ged/src/TAttFillEditor.cxx b/ged/src/TAttFillEditor.cxx
index 4b5f7430ebffa08bbf58e5f4f4a7847f4031bcb6..a8e5b0b1499ca0b7fd6f1429fc1e64b01385b575 100644
--- a/ged/src/TAttFillEditor.cxx
+++ b/ged/src/TAttFillEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TAttFillEditor.cxx,v 1.10 2006/03/20 21:43:41 pcanal Exp $
+// @(#)root/ged:$Name:  $:$Id: TAttFillEditor.cxx,v 1.11 2006/06/21 15:40:23 antcheva Exp $
 // Author: Ilka Antcheva   10/05/04
 
 /*************************************************************************
@@ -108,9 +108,10 @@ void TAttFillEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    fModel = obj;
    fPad = pad;
-
+   
    fAttFill = dynamic_cast<TAttFill *>(fModel);
-
+   fAvoidSignal = kTRUE;
+   
    Color_t c = fAttFill->GetFillColor();
    Pixel_t p = TColor::Number2Pixel(c);
    fColorSelect->SetColor(p, kFALSE);
@@ -120,6 +121,7 @@ void TAttFillEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -127,6 +129,7 @@ void TAttFillEditor::DoFillColor(Pixel_t color)
 {
    // Slot connected to the fill area color.
 
+   if (fAvoidSignal) return;
    fAttFill->SetFillColor(TColor::GetColor(color));
    Update();
 }
@@ -136,6 +139,7 @@ void TAttFillEditor::DoFillPattern(Style_t pattern)
 {
    // Slot connected to the fill area pattern.
 
+   if (fAvoidSignal) return;
    fAttFill->SetFillStyle(pattern);
    Update();
 }
diff --git a/ged/src/TAttLineEditor.cxx b/ged/src/TAttLineEditor.cxx
index 18c0baa3a3567c6d95c974efd26f1f7a9a24eb76..c5b4c0b41e753120d8312f7d8e114f901269e2aa 100644
--- a/ged/src/TAttLineEditor.cxx
+++ b/ged/src/TAttLineEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TAttLineEditor.cxx,v 1.9 2006/04/07 15:13:14 antcheva Exp $
+// @(#)root/ged:$Name:  $:$Id: TAttLineEditor.cxx,v 1.10 2006/06/21 15:40:23 antcheva Exp $
 // Author: Ilka Antcheva   10/05/04
 
 /*************************************************************************
@@ -123,21 +123,23 @@ void TAttLineEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
    
    fAttLine = dynamic_cast<TAttLine *>(fModel);
+   fAvoidSignal = kTRUE;
 
-   fStyleCombo->Select(fAttLine->GetLineStyle(), kFALSE);
+   fStyleCombo->Select(fAttLine->GetLineStyle());
 
    if (fModel->InheritsFrom(TGraph::Class())) {
-      fWidthCombo->Select(TMath::Abs(fAttLine->GetLineWidth()%100), kFALSE);
+      fWidthCombo->Select(TMath::Abs(fAttLine->GetLineWidth()%100));
    } else {
-      fWidthCombo->Select(fAttLine->GetLineWidth(), kFALSE);
+      fWidthCombo->Select(fAttLine->GetLineWidth());
    }
 
    Color_t c = fAttLine->GetLineColor();
    Pixel_t p = TColor::Number2Pixel(c);
-   fColorSelect->SetColor(p, kFALSE);
+   fColorSelect->SetColor(p);
 
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -145,6 +147,7 @@ void TAttLineEditor::DoLineColor(Pixel_t color)
 {
    // Slot connected to the line color.
 
+   if (fAvoidSignal) return;
    fAttLine->SetLineColor(TColor::GetColor(color));
    Update();
 }
@@ -155,6 +158,7 @@ void TAttLineEditor::DoLineStyle(Int_t style)
 {
    // Slot connected to the line style.
 
+   if (fAvoidSignal) return;
    fAttLine->SetLineStyle(style);
    Update();
 }
@@ -165,6 +169,7 @@ void TAttLineEditor::DoLineWidth(Int_t width)
 {
    // Slot connected to the line width.
 
+   if (fAvoidSignal) return;
    if (fModel->InheritsFrom(TGraph::Class())) {
       Int_t graphLineWidth = 100*Int_t(fAttLine->GetLineWidth()/100);
       if (graphLineWidth >= 0) {
diff --git a/ged/src/TAttMarkerEditor.cxx b/ged/src/TAttMarkerEditor.cxx
index a4549de35f1af7e2a4441efb06b2a5782f1bf114..11f037ed73e285d918dc22cf156f250eaf434c8f 100644
--- a/ged/src/TAttMarkerEditor.cxx
+++ b/ged/src/TAttMarkerEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TAttMarkerEditor.cxx,v 1.8 2005/11/25 09:56:35 brun Exp $
+// @(#)root/ged:$Name:  $:$Id: TAttMarkerEditor.cxx,v 1.9 2006/03/20 21:43:41 pcanal Exp $
 // Author: Ilka Antcheva   11/05/04
 
 /*************************************************************************
@@ -122,6 +122,7 @@ void TAttMarkerEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    fModel = obj;
    fPad = pad;
+   fAvoidSignal = kTRUE;
 
    fAttMarker = dynamic_cast<TAttMarker *>(fModel);
 
@@ -142,6 +143,7 @@ void TAttMarkerEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 
@@ -150,6 +152,7 @@ void TAttMarkerEditor::DoMarkerColor(Pixel_t color)
 {
    // Slot connected to the marker color.
 
+   if (fAvoidSignal) return;
    fAttMarker->SetMarkerColor(TColor::GetColor(color));
    Update();
 }
@@ -159,6 +162,7 @@ void TAttMarkerEditor::DoMarkerStyle(Style_t marker)
 {
    // Slot connected to the marker type.
 
+   if (fAvoidSignal) return;
    if (marker==1 || marker==6 || marker==7) {
       fMarkerSize->SetNumber(1.);
       fMarkerSize->SetState(kFALSE);
@@ -174,6 +178,7 @@ void TAttMarkerEditor::DoMarkerSize()
 {
    // Slot connected to the marker size.
 
+   if (fAvoidSignal) return;
    Float_t size = fMarkerSize->GetNumber();
    fAttMarker->SetMarkerSize(size);
    Update();
diff --git a/ged/src/TAttTextEditor.cxx b/ged/src/TAttTextEditor.cxx
index 0c1b735bb8bf14a0292571a548f56ab1cd406636..f8bf48c57041cd096ba918ad80599d5b272e43ae 100644
--- a/ged/src/TAttTextEditor.cxx
+++ b/ged/src/TAttTextEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TAttTextEditor.cxx,v 1.7 2005/11/25 09:56:35 brun Exp $
+// @(#)root/ged:$Name:  $:$Id: TAttTextEditor.cxx,v 1.8 2006/03/20 21:43:41 pcanal Exp $
 // Author: Ilka Antcheva   11/05/04
 
 /*************************************************************************
@@ -111,6 +111,7 @@ void TAttTextEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
 
    fAttText = dynamic_cast<TAttText *>(fModel);
+   fAvoidSignal = kTRUE;
 
    fTypeCombo->Select(fAttText->GetTextFont() / 10);
 
@@ -127,15 +128,16 @@ void TAttTextEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    Int_t size = fPad->YtoPixel(0.0) - fPad->YtoPixel(dy);
    if (size > 50) size = 50;
    if (size < 0)  size = 0;
-   fSizeCombo->Select(size);
+   fSizeCombo->Select(size, kFALSE);
 
-   fAlignCombo->Select(fAttText->GetTextAlign());
+   fAlignCombo->Select(fAttText->GetTextAlign(), kFALSE);
 
    Color_t c = fAttText->GetTextColor();
    Pixel_t p = TColor::Number2Pixel(c);
-   fColorSelect->SetColor(p);
+   fColorSelect->SetColor(p, kFALSE);
 
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -180,7 +182,7 @@ Bool_t TAttTextEditor::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
       }
    }
 
-   if (b) Update();
+   if (b && !fAvoidSignal) Update();
 
    return kTRUE;
 }
diff --git a/ged/src/TAxisEditor.cxx b/ged/src/TAxisEditor.cxx
index 82e87177a2051105dbf0d2852469fa7a19709cf0..5a76740f9832b4522be3d78effc5ffddc6bb2cc6 100644
--- a/ged/src/TAxisEditor.cxx
+++ b/ged/src/TAxisEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TAxisEditor.cxx,v 1.11 2005/11/25 09:56:35 brun Exp $
+// @(#)root/ged:$Name:  $:$Id: TAxisEditor.cxx,v 1.12 2006/03/20 21:43:41 pcanal Exp $
 // Author: Ilka Antcheva   11/05/04
 
 /*************************************************************************
@@ -319,6 +319,7 @@ void TAxisEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
 
    fAxis = (TAxis *)fModel;
+   fAvoidSignal = kTRUE;
 
    Color_t c = fAxis->GetAxisColor();
    Pixel_t p = TColor::Number2Pixel(c);
@@ -405,6 +406,7 @@ void TAxisEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -412,6 +414,7 @@ void TAxisEditor::DoAxisColor(Pixel_t color)
 {
    // Slot connected to the axis color.
    
+   if (fAvoidSignal) return;
    fAxis->SetAxisColor(TColor::GetColor(color));
    Update();
 }
@@ -421,6 +424,7 @@ void TAxisEditor::DoTickLength()
 {
    // Slot connected to the tick length settings.
 
+   if (fAvoidSignal) return;
    Float_t ticks = fTickLength->GetNumber();
    fAxis->SetTickLength(ticks);
    Update();
@@ -433,6 +437,7 @@ void TAxisEditor::DoTicks()
 {
    // Slot connected to the ticks draw settings.
 
+   if (fAvoidSignal) return;
    if (fTicksBoth->GetState() == kButtonDown) {
       fAxis->SetTicks("+-");
    } else {
@@ -448,6 +453,7 @@ void TAxisEditor::DoDivisions()
    // Slot connected to the number of divisions.
 
    // the number of divisions are used 3 number entry widgets
+   if (fAvoidSignal) return;
    Int_t div = (Int_t)(fDiv1->GetNumber() + fDiv2->GetNumber()  * 100 
                                           + fDiv3->GetNumber() * 10000);
    fAxis->SetNdivisions(div, fOptimize->GetState());
@@ -459,6 +465,8 @@ void TAxisEditor::DoLogAxis()
 {
    // Slot for Log scale setting.
 
+   if (fAvoidSignal) return;
+
    gPad = fPad;
       
    if (fLogAxis->GetState() == kButtonDown) {
@@ -487,6 +495,7 @@ void TAxisEditor::DoMoreLog()
 {
    // Slot connected to more Log labels flag
 
+   if (fAvoidSignal) return;
    Int_t flag = 0;
    if (fMoreLog->GetState() == kButtonDown)    flag = 1;
    else if (fMoreLog->GetState() == kButtonUp) flag = 0;
@@ -499,6 +508,7 @@ void TAxisEditor::DoTitle(const char *text)
 {
    // Slot connected to the axis color.
    
+   if (fAvoidSignal) return;
    fAxis->SetTitle(text);
    Update();
 }
@@ -508,6 +518,7 @@ void TAxisEditor::DoTitleColor(Pixel_t color)
 {
    // Slot connected to the title color.
    
+   if (fAvoidSignal) return;
    fAxis->SetTitleColor(TColor::GetColor(color));
    Update();
 }
@@ -517,6 +528,7 @@ void TAxisEditor::DoTitleSize()
 {
    // Slot connected to the title font size.
 
+   if (fAvoidSignal) return;
    Float_t size = fTitleSize->GetNumber();
    fAxis->SetTitleSize(size);
    Update();
@@ -527,6 +539,7 @@ void TAxisEditor::DoTitleFont(Int_t font)
 {
    // Slot connected to the title font.
 
+   if (fAvoidSignal) return;
    Int_t f = font * 10 + fTitlePrec;
    fAxis->SetTitleFont(f);
    Update();
@@ -537,6 +550,7 @@ void TAxisEditor::DoTitleOffset()
 {
    // Slot connected to the title offset.
 
+   if (fAvoidSignal) return;
    Float_t offset = fTitleOffset->GetNumber();
    fAxis->SetTitleOffset(offset);
    Update();
@@ -547,6 +561,7 @@ void TAxisEditor::DoTitleCentered()
 {
    // Slot connected to centered title option.
 
+   if (fAvoidSignal) return;
    Int_t ctr = fCentered->GetState();
    fAxis->CenterTitle(ctr);
    Update();
@@ -557,6 +572,7 @@ void TAxisEditor::DoTitleRotated()
 {
    // Slot connected to the title rotation.
 
+   if (fAvoidSignal) return;
    Int_t rot = fRotated->GetState();
    fAxis->RotateTitle(rot);
    Update();
@@ -567,6 +583,7 @@ void TAxisEditor::DoLabelColor(Pixel_t color)
 {
    // Slot connected to the label color.
 
+   if (fAvoidSignal) return;
    fAxis->SetLabelColor(TColor::GetColor(color));
    Update();
 }
@@ -576,6 +593,7 @@ void TAxisEditor::DoLabelSize()
 {
    // Slot connected to the label size.
 
+   if (fAvoidSignal) return;
    Float_t size = fLabelSize->GetNumber();
    fAxis->SetLabelSize(size);
    Update();
@@ -586,6 +604,7 @@ void TAxisEditor::DoLabelFont(Int_t font)
 {
    // Slot connected to the label font.
 
+   if (fAvoidSignal) return;
    Int_t f = font * 10 + fLabelPrec;
    fAxis->SetLabelFont(f);
    Update();
@@ -596,6 +615,7 @@ void TAxisEditor::DoLabelOffset()
 {
    // Slot connected to the label offset.
 
+   if (fAvoidSignal) return;
    Float_t offset = fLabelOffset->GetNumber();
    fAxis->SetLabelOffset(offset);
    Update();
@@ -606,6 +626,7 @@ void TAxisEditor::DoNoExponent()
 {
    // Slot connected to the labels' exponent flag.
 
+   if (fAvoidSignal) return;
    Int_t exp = fNoExponent->GetState();
    fAxis->SetNoExponent(exp);
    Update();
@@ -616,6 +637,7 @@ void TAxisEditor::DoDecimal(Bool_t on)
 {
    // Slot connected to the decimal part setting.
 
+   if (fAvoidSignal) return;
    fAxis->SetDecimals(on);
    gStyle->SetStripDecimals(!on);
    Update();
diff --git a/ged/src/TCurlyArcEditor.cxx b/ged/src/TCurlyArcEditor.cxx
index e37076e56ea0485fffc23f0ec8d301ee93d36184..a47d408dac4681ac6f9f62a37319ae3553f316ba 100644
--- a/ged/src/TCurlyArcEditor.cxx
+++ b/ged/src/TCurlyArcEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TCurlyArcEditor.cxx,v 1.8 2006/01/30 17:42:05 rdm Exp $
+// @(#)root/ged:$Name:  $:$Id: TCurlyArcEditor.cxx,v 1.9 2006/03/20 21:43:41 pcanal Exp $
 // Author: Ilka Antcheva, Otto Schaile 15/12/04
 
 /*************************************************************************
@@ -170,6 +170,7 @@ void TCurlyArcEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
 
    fCurlyArc = (TCurlyArc *)fModel;
+   fAvoidSignal = kTRUE;
 
    Double_t val = fCurlyArc->GetRadius();
    fRadiusEntry->SetNumber(val);
@@ -188,6 +189,7 @@ void TCurlyArcEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -195,6 +197,7 @@ void TCurlyArcEditor::DoCenterXY()
 {
    // Slot connected to set center .
 
+   if (fAvoidSignal) return;
    fCurlyArc->SetCenter((Double_t)fCenterXEntry->GetNumber(), (Double_t)fCenterYEntry->GetNumber());
    fCurlyArc->Paint(fCurlyArc->GetDrawOption());
    Update();
@@ -205,6 +208,7 @@ void TCurlyArcEditor::DoRadius()
 {
    // Slot connected to the radius setting.
 
+   if (fAvoidSignal) return;
    fCurlyArc->SetRadius((Double_t)fRadiusEntry->GetNumber());
    fCurlyArc->Paint(fCurlyArc->GetDrawOption());
    Update();
@@ -215,6 +219,7 @@ void TCurlyArcEditor::DoPhimin()
 {
    // Slot connected to the phimin setting.
 
+   if (fAvoidSignal) return;
    fCurlyArc->SetPhimin((Double_t)fPhiminEntry->GetNumber());
    fCurlyArc->Paint(fCurlyArc->GetDrawOption());
    Update();
@@ -224,10 +229,9 @@ void TCurlyArcEditor::DoPhimin()
 void TCurlyArcEditor::DoPhimax()
 {
    // Slot connected to the phimax setting.
+
+   if (fAvoidSignal) return;
    fCurlyArc->SetPhimax((Double_t)fPhimaxEntry->GetNumber());
    fCurlyArc->Paint(fCurlyArc->GetDrawOption());
    Update();
 }
-
-
-//______________________________________________________________________________
diff --git a/ged/src/TCurlyLineEditor.cxx b/ged/src/TCurlyLineEditor.cxx
index ca24c9a83406bb955324f199f190a81baabf856c..a101df6a7c1d8087082297f47719bc49e21e4b63 100644
--- a/ged/src/TCurlyLineEditor.cxx
+++ b/ged/src/TCurlyLineEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TCurlyLineEditor.cxx,v 1.9 2006/01/30 17:42:05 rdm Exp $
+// @(#)root/ged:$Name:  $:$Id: TCurlyLineEditor.cxx,v 1.10 2006/03/20 21:43:41 pcanal Exp $
 // Author: Ilka Antcheva, Otto Schaile 15/12/04
 
 /*************************************************************************
@@ -84,7 +84,6 @@ TCurlyLineEditor::TCurlyLineEditor(const TGWindow *p, Int_t id, Int_t width,
    fIsWavy->SetToolTipText("Toggle between wavy line (Gluon) if selected; curly line (Gamma) otherwise.");
    AddFrame(fIsWavy, new TGLayoutHints(kLHintsLeft, 5, 1, 5, 8));
 
-//
    fStartXFrame = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
    AddFrame(fStartXFrame, new TGLayoutHints(kLHintsTop, 1, 1, 3, 0));
 
@@ -96,7 +95,7 @@ TCurlyLineEditor::TCurlyLineEditor(const TGWindow *p, Int_t id, Int_t width,
                                     TGNumberFormat::kNELNoLimits);
    fStartXEntry->GetNumberEntry()->SetToolTipText("Set start point X ccordinate of curly line.");
    fStartXFrame->AddFrame(fStartXEntry, new TGLayoutHints(kLHintsLeft, 5, 1, 1, 1));
-//
+
    fStartYFrame = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
    AddFrame(fStartYFrame, new TGLayoutHints(kLHintsTop, 1, 1, 3, 0));
 
@@ -108,7 +107,7 @@ TCurlyLineEditor::TCurlyLineEditor(const TGWindow *p, Int_t id, Int_t width,
                                     TGNumberFormat::kNELNoLimits);
    fStartYEntry->GetNumberEntry()->SetToolTipText("Set start point Y coordinate of curly line.");
    fStartYFrame->AddFrame(fStartYEntry, new TGLayoutHints(kLHintsLeft, 5, 1, 1, 1));
-//
+
    fEndXFrame = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
    AddFrame(fEndXFrame, new TGLayoutHints(kLHintsTop, 1, 1, 3, 0));
 
@@ -120,7 +119,7 @@ TCurlyLineEditor::TCurlyLineEditor(const TGWindow *p, Int_t id, Int_t width,
                                   TGNumberFormat::kNELNoLimits);
    fEndXEntry->GetNumberEntry()->SetToolTipText("Set end point X coordinate of curly line.");
    fEndXFrame->AddFrame(fEndXEntry, new TGLayoutHints(kLHintsLeft, 6, 1, 1, 1));
-//
+
    fEndYFrame = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
    AddFrame(fEndYFrame, new TGLayoutHints(kLHintsTop, 1, 1, 3, 0));
 
@@ -201,6 +200,7 @@ void TCurlyLineEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    }
 
    fCurlyLine = (TCurlyLine *)fModel;
+   fAvoidSignal = kTRUE;
 
    Double_t val = fCurlyLine->GetAmplitude();
    fAmplitudeEntry->SetNumber(val);
@@ -227,6 +227,7 @@ void TCurlyLineEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -234,6 +235,7 @@ void TCurlyLineEditor::DoStartXY()
 {
    // Slot connected to the CurlyLine StartPoint.
 
+   if (fAvoidSignal) return;
    fCurlyLine->SetStartPoint(fStartXEntry->GetNumber(), fStartYEntry->GetNumber());
    fCurlyLine->Paint(fCurlyLine->GetDrawOption());
    Update();
@@ -243,6 +245,7 @@ void TCurlyLineEditor::DoEndXY()
 {
    // Slot connected to the CurlyLine End.
 
+   if (fAvoidSignal) return;
    fCurlyLine->SetEndPoint(fEndXEntry->GetNumber(), fEndYEntry->GetNumber());
    fCurlyLine->Paint(fCurlyLine->GetDrawOption());
    Update();
@@ -253,6 +256,7 @@ void TCurlyLineEditor::DoAmplitude()
 {
    // Slot connected to the amplitude setting.
 
+   if (fAvoidSignal) return;
    fCurlyLine->SetAmplitude((Double_t)fAmplitudeEntry->GetNumber());
    fCurlyLine->Paint(fCurlyLine->GetDrawOption());
    Update();
@@ -263,6 +267,7 @@ void TCurlyLineEditor::DoWaveLength()
 {
    // Slot connected to the wavelength setting.
 
+   if (fAvoidSignal) return;
    fCurlyLine->SetWaveLength((Double_t)fWaveLengthEntry->GetNumber());
    fCurlyLine->Paint(fCurlyLine->GetDrawOption());
    HideFrame(fWaveLengthEntry);
@@ -274,10 +279,11 @@ void TCurlyLineEditor::DoWavy()
 {
    // Slot connected to the wavy / curly setting.
 
-   if (fIsWavy->GetState() == kButtonDown) fCurlyLine->SetCurly();
-   else                                    fCurlyLine->SetWavy();
+   if (fAvoidSignal) return;
+   if (fIsWavy->GetState() == kButtonDown) 
+      fCurlyLine->SetCurly();
+   else
+      fCurlyLine->SetWavy();
    fCurlyLine->Paint(fCurlyLine->GetDrawOption());
    Update();
 }
-
-//______________________________________________________________________________
diff --git a/ged/src/TGedEditor.cxx b/ged/src/TGedEditor.cxx
index d8facd4d1d0015d5bfe736291217747849bfd7e7..45c87b19ca73ca552a64e6900e2bafb7ba657582 100644
--- a/ged/src/TGedEditor.cxx
+++ b/ged/src/TGedEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TGedEditor.cxx,v 1.27 2006/05/23 04:47:36 brun Exp $
+// @(#)root/ged:$Name:  $:$Id: TGedEditor.cxx,v 1.28 2006/05/24 14:49:21 brun Exp $
 // Author: Marek Biskup, Ilka Antcheva 02/08/2003
 
 /*************************************************************************
@@ -187,13 +187,13 @@ void TGedEditor::GetEditors()
       }
    } else {
 
-      //search for a class editor = classname + 'Editor'
-      GetClassEditor(fModel->IsA());
-
-      //now scan all base classes
+      // scan list of base classes
       list = fModel->IsA()->GetListOfBases();
       if (list->First() != 0) 
          GetBaseClassEditor(fModel->IsA());
+
+      //search for a class editor = classname + 'Editor'
+      GetClassEditor(fModel->IsA());
    }
 
    fStyle->Layout();
@@ -323,6 +323,8 @@ void TGedEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t event)
          return;
       }
    }
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kWatch);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kWatch));
 
    TGFrameElement *el;
    TIter next(fStyle->GetList());
@@ -330,6 +332,13 @@ void TGedEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t event)
       if ((el->fFrame)->InheritsFrom(TGedFrame::Class()))
          ((TGedFrame *)(el->fFrame))->SetModel(fPad, fModel, event);
    }
+   if (fGlobal) 
+      Layout();
+   else
+      ((TGMainFrame*)GetMainFrame())->Layout();
+
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kPointer);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kPointer));
 }
 
 //______________________________________________________________________________
diff --git a/ged/src/TGedFrame.cxx b/ged/src/TGedFrame.cxx
index d733a3384e88ca6ebd65678dc69c0d2f66fb7625..2b01e30bdbd3edc094508bd084519c4e293a6f57 100644
--- a/ged/src/TGedFrame.cxx
+++ b/ged/src/TGedFrame.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TGedFrame.cxx,v 1.10 2006/05/23 04:47:36 brun Exp $
+// @(#)root/ged:$Name:  $:$Id: TGedFrame.cxx,v 1.11 2006/05/24 14:49:21 brun Exp $
 // Author: Ilka Antcheva   10/05/04
 
 /*************************************************************************
@@ -39,6 +39,7 @@ TGedFrame::TGedFrame(const TGWindow *p, Int_t id, Int_t width,
    fPad    = 0;
    fModel  = 0;
    fInit   = kTRUE;
+   fAvoidSignal = kFALSE;
 
    Associate(p);
    fTab = (TGTab*)p->GetParent()->GetParent();
@@ -53,21 +54,24 @@ TGedFrame::TGedFrame(const TGedFrame& gf) :
   fModel(gf.fModel),
   fPad(gf.fPad),
   fInit(gf.fInit),
+  fAvoidSignal(gf.fAvoidSignal),
   fTab(gf.fTab)
 { 
-   //copy constructor
+   // Copy constructor.
 }
 
 //______________________________________________________________________________
 TGedFrame& TGedFrame::operator=(const TGedFrame& gf)
 {
-   //assignement operator
+   // Assignement operator.
+
    if(this!=&gf) {
       TGCompositeFrame::operator=(gf);
       TGWidget::operator=(gf);
       fModel=gf.fModel;
       fPad=gf.fPad;
       fInit=gf.fInit;
+      fAvoidSignal=gf.fAvoidSignal;
       fTab=gf.fTab;
    } 
    return *this;
@@ -122,8 +126,9 @@ void TGedFrame::SetActive(Bool_t active)
       ((TGCompositeFrame*)GetParent())->ShowFrame(this);
    else
       ((TGCompositeFrame*)GetParent())->HideFrame(this);
-
-   ((TGMainFrame*)GetMainFrame())->Layout();
+   
+// no need to call for every single editor Layout of TGMainFrame
+//   ((TGMainFrame*)GetMainFrame())->Layout();
 
    // to avoid that the user changes options on a deactivated Tab
    if (fTab->IsEnabled(fTab->GetCurrent()))
@@ -217,13 +222,14 @@ TGedNameFrame::TGedNameFrame(const TGedNameFrame& nf) :
   f1(nf.f1),
   f2(nf.f2)
 { 
-   //copy constructor
+   // Copy constructor.
 }
 
 //______________________________________________________________________________
 TGedNameFrame& TGedNameFrame::operator=(const TGedNameFrame& nf)
 {
-   //assignement operator
+   // Assignement operator.
+
    if(this!=&nf) {
       TGedFrame::operator=(nf);
       fLabel=nf.fLabel;
diff --git a/ged/src/TGraphEditor.cxx b/ged/src/TGraphEditor.cxx
index 120a5f932afe3b499735c53114dda969de404c04..1afb5e32dbce0b70519844c1fc50d2c1a9098d4a 100644
--- a/ged/src/TGraphEditor.cxx
+++ b/ged/src/TGraphEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TGraphEditor.cxx,v 1.17 2006/04/13 13:22:31 antcheva Exp $
+// @(#)root/ged:$Name:  $:$Id: TGraphEditor.cxx,v 1.18 2006/05/30 11:46:35 antcheva Exp $
 // Author: Carsten Hof   16/08/04
 
 /*************************************************************************
@@ -165,7 +165,7 @@ void TGraphEditor::ConnectSignals2Slots()
    // Connect signals to slots.
 
    fTitle->Connect("TextChanged(const char *)","TGraphEditor",this,"DoTitle(const char *)");
-   fgr->Connect("Pressed(Int_t)","TGraphEditor",this,"DoShape(Int_t)");
+   fgr->Connect("Released(Int_t)","TGraphEditor",this,"DoShape()");
    fMarkerOnOff->Connect("Toggled(Bool_t)","TGraphEditor",this,"DoMarkerOnOff(Bool_t)");
    fWidthCombo->Connect("Selected(Int_t)", "TGraphEditor", this, "DoGraphLineWidth()");
    fExSide->Connect("Clicked()","TGraphEditor",this,"DoGraphLineWidth()");
@@ -190,6 +190,7 @@ void TGraphEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fModel = obj;
    fPad = pad;
    fGraph = (TGraph *)fModel;
+   fAvoidSignal = kTRUE;
 
    // set the Title TextEntry
    const char *text = fGraph->GetTitle();
@@ -248,6 +249,7 @@ void TGraphEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    if (fInit) ConnectSignals2Slots();
    SetActive();  // activates this Editor
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -256,25 +258,32 @@ void TGraphEditor::DoTitle(const char *text)
 {
    // Slot for setting the graph title.
 
+   if (fAvoidSignal) return;
    fGraph->SetTitle(text);
    Update();
 }
 
 //______________________________________________________________________________
 
-void TGraphEditor::DoShape(Int_t s)
+void TGraphEditor::DoShape()
 {
    // Slot connected to the draw options.
 
+   if (fAvoidSignal) return;
    TString opt;
-
    if (fGraph->InheritsFrom("TGraphErrors"))
       opt = fGraph->GetDrawOption();
    else
       opt = GetDrawOption();
 
    opt.ToUpper();
-
+   Int_t s = 0;
+   if (fShape->GetState() == kButtonDown) s = kSHAPE_NOLINE;
+   else if (fShape0->GetState() == kButtonDown) s = kSHAPE_SMOOTH;
+   else if (fShape1->GetState() == kButtonDown) s = kSHAPE_SIMPLE;
+   else if (fShape2->GetState() == kButtonDown) s = kSHAPE_BAR;
+   else s = kSHAPE_FILL;
+   
    switch (s) {
 
       // change draw option to No Line:
@@ -362,6 +371,7 @@ void TGraphEditor::DoMarkerOnOff(Bool_t on)
 {
    // Slot for setting markers as visible/invisible.
 
+   if (fAvoidSignal) return;
    TString t = GetDrawOption();
    t.ToUpper();
 
@@ -383,6 +393,7 @@ void TGraphEditor::DoGraphLineWidth()
 {
    // Slot connected to the graph line width.
 
+   if (fAvoidSignal) return;
    Int_t width = fWidthCombo->GetSelected();
    Int_t lineWidth = TMath::Abs(fGraph->GetLineWidth()%100);
    Int_t side = 1;
diff --git a/ged/src/TH1Editor.cxx b/ged/src/TH1Editor.cxx
index e16fa7a6a6b0184e096cec99b3e8f4a3f526b1a2..a6f1498611f22c60ac93debb1aa94c0b6a6f6c8f 100644
--- a/ged/src/TH1Editor.cxx
+++ b/ged/src/TH1Editor.cxx
@@ -172,7 +172,6 @@ enum ETH1Wid{
 };
 
 //______________________________________________________________________________
-
 TH1Editor::TH1Editor(const TGWindow *p, Int_t id, Int_t width,
                          Int_t height, UInt_t options, Pixel_t back)
    : TGedFrame(p, id, width, height, options | kVerticalFrame, back)
@@ -364,8 +363,6 @@ TH1Editor::TH1Editor(const TGWindow *p, Int_t id, Int_t width,
    fTab->Layout();
    fTab->MapWindow();
  
-//   ((TGMainFrame*)GetMainFrame())->Layout();  not needed?
-
    TClass *cl = TH1::Class();
    TGedElement *ge = new TGedElement;
    ge->fGedFrame = this;
@@ -374,7 +371,6 @@ TH1Editor::TH1Editor(const TGWindow *p, Int_t id, Int_t width,
 }
 
 //______________________________________________________________________________
-
 TH1Editor::~TH1Editor()
 {
    // Destructor of TH1 editor.
@@ -395,8 +391,8 @@ TH1Editor::~TH1Editor()
                   if (!strcmp(el2->fFrame->ClassName(), "TGCompositeFrame"))
                      ((TGCompositeFrame *)el2->fFrame)->Cleanup();
                }
+               ((TGCompositeFrame *)el1->fFrame)->Cleanup();
             }
-            ((TGCompositeFrame *)el1->fFrame)->Cleanup();
          }
          ((TGCompositeFrame *)el->fFrame)->Cleanup();
       }
@@ -422,7 +418,6 @@ TH1Editor::~TH1Editor()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::ConnectSignals2Slots()
 {
    // Connect signals to slots.
@@ -439,8 +434,7 @@ void TH1Editor::ConnectSignals2Slots()
    fAddSimple->Connect("Toggled(Bool_t)", "TH1Editor", this, "DoAddSimple(Bool_t)");
 
    //change 2D <-> 3D plot
-   fDim->Connect("Pressed()","TH1Editor",this,"DoHistSimple()");
-   fDim0->Connect("Pressed()","TH1Editor",this,"DoHistComplex()");   
+   fDimGroup->Connect("Released(Int_t)","TH1Editor",this,"DoHistView()");
 
    // change Bar Width/Offset, the second connection is needed to have the ability to confirm the value also with enter
    fBarWidth->Connect("ValueSet(Long_t)", "TH1Editor", this, "DoBarWidth()");
@@ -480,7 +474,6 @@ void TH1Editor::ConnectSignals2Slots()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 {
    // Pick up current values of histogram attributes.
@@ -534,6 +527,10 @@ void TH1Editor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fModel = obj;
    fPad = pad;
    fHist = (TH1*)fModel;
+   fAvoidSignal = kTRUE;
+
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kWatch);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kWatch));
 
    //set the selected object name on Binning tab
    TString string;
@@ -803,24 +800,28 @@ void TH1Editor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fMake=kTRUE;
    fTab->SetEnabled(1, kTRUE);
    SetActive(kTRUE);
+   fAvoidSignal = kFALSE;
+
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kPointer);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kPointer));
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoTitle(const char *text)
 {
    // Slot connected to the histogram title setting.
   
+   if (fAvoidSignal) return;
    fHist->SetTitle(text);
    Update();
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoAddMarker(Bool_t on)
 {
    // Slot connected to the show markers check box.
    
+   if (fAvoidSignal) return;
    TString str = GetDrawOption();
    str.ToUpper(); 
    if (str.Contains("SAME"))
@@ -862,11 +863,11 @@ void TH1Editor::DoAddMarker(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoAddB(Bool_t on)
 {
    // Slot connected to the bar Add check box.
    
+   if (fAvoidSignal) return;
    TString str = GetDrawOption();
    str.ToUpper();
    if (str.Contains("SAME"))
@@ -906,11 +907,11 @@ void TH1Editor::DoAddB(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoAddBar(Bool_t on)
 {
    // Slot connected to the bar Add check box.
    
+   if (fAvoidSignal) return;
    Disconnect(fAddMarker);
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1006,13 +1007,13 @@ void TH1Editor::DoAddBar(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoAddSimple(Bool_t on)
 {
    // Slot connected to fAddSimple check box for drawing a simple histogram
    // without errors (== HIST draw option) in combination with some other 
    // draw options. It draws an additional line on the top of the bins.
 
+   if (fAvoidSignal) return;
    Disconnect(fAddMarker);
    //   Bool_t make=kFALSE;
    fMake = kFALSE;
@@ -1042,11 +1043,28 @@ void TH1Editor::DoAddSimple(Bool_t on)
 }    
 
 //______________________________________________________________________________
+void TH1Editor::DoHistView()
+{
+   // Slot connected to the 'Plot' button group.
 
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kWatch);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kWatch));
+
+   if (fDim->GetState() == kButtonDown) 
+      DoHistSimple();
+   else 
+      DoHistComplex();
+
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kPointer);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kPointer));
+}
+
+//______________________________________________________________________________
 void TH1Editor::DoHistSimple()
 {
    // Slot connected to the 2D radio button.
 
+   if (fAvoidSignal) return;
    if (fDim->GetState()==kButtonDown){
       TString str ="";
       fMake=kFALSE;
@@ -1133,11 +1151,11 @@ void TH1Editor::DoHistSimple()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoHistComplex()
 {
    // Slot connected to the 3D radio button.
 
+   if (fAvoidSignal) return;
    if (fDim0->GetState()==kButtonDown) {
       TString str ="";
       fMake=kFALSE;
@@ -1181,12 +1199,12 @@ void TH1Editor::DoHistComplex()
 }    
 
 //______________________________________________________________________________
-
 void TH1Editor::DoHistChanges()
 {
    // Slot connected to the histogram type, the coordinate type, the error type
    // and the Add combo box.
    
+   if (fAvoidSignal) return;
    fMakeB= kFALSE;
    TGListBox* lb;
    if (GetHistTypeLabel().Contains("SURF")) { 
@@ -1293,32 +1311,32 @@ void TH1Editor::DoHistChanges()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBarWidth()
 {
    // Slot connected to the Bar Width of the Bar Charts.
    
+   if (fAvoidSignal) return;
    fHist->SetBarWidth(fBarWidth->GetNumber());
    Update();
 }
    
 //______________________________________________________________________________
-
 void TH1Editor::DoBarOffset()
 {
    // Slot connected to the Bar Offset of the Bar Charts.
    
+   if (fAvoidSignal) return;
    Float_t f = fBarOffset->GetNumber();
    fHist->SetBarOffset(f);
    Update();
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoPercent()
 {
    // Slot connected to the bar percentage settings.
       
+   if (fAvoidSignal) return;
    TString str = GetDrawOption();
    str.ToUpper();
    if (str.Contains("SAME"))
@@ -1354,11 +1372,11 @@ void TH1Editor::DoPercent()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoHBar(Bool_t on)
 {
    // Slot connected to the Horizontal Bar check button.
    
+   if (fAvoidSignal) return;
    TString str = GetDrawOption();
    str.ToUpper();
    if (str.Contains("SAME"))
@@ -1379,12 +1397,12 @@ void TH1Editor::DoHBar(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoSliderMoved()
 {
    // Slot connected to the x-Slider for redrawing of the histogram 
    // according to the new Slider range.
 
+   if (fAvoidSignal) return;
    fPad->GetCanvas()->FeedbackMode(kTRUE); 
    fPad->cd();
    if (fDelaydraw->GetState()==kButtonDown && fDim->GetState()==kButtonDown) {  
@@ -1473,12 +1491,12 @@ void TH1Editor::DoSliderMoved()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoSliderPressed()
 {
    // Slot connected to the x-axis Range slider for initialising the
    // values of the slider movement.
    
+   if (fAvoidSignal) return;
    fPad->GetCanvas()->FeedbackMode(kTRUE); 
    fPad->cd();
    static Float_t ymin,ymax,xleft,xright;
@@ -1522,12 +1540,12 @@ void TH1Editor::DoSliderPressed()
 }
    
 //______________________________________________________________________________
-
 void TH1Editor::DoSliderReleased()
 {
    // Slot connected to the x-axis Range slider for finalizing the 
    // values of the slider movement. 
 
+   if (fAvoidSignal) return;
    if (fDelaydraw->GetState()==kButtonDown) {
       fHist->GetXaxis()->SetRange((Int_t)((fSlider->GetMinPosition())+0.5),
                                   (Int_t)((fSlider->GetMaxPosition())+0.5));
@@ -1545,12 +1563,12 @@ void TH1Editor::DoSliderReleased()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoAxisRange()
 {
    // Slot connected to the number entry fields containing the Max/Min 
    // value of the x-axis.
    
+   if (fAvoidSignal) return;
    Int_t nx = fHist->GetXaxis()->GetNbins();
    Double_t width = fHist->GetXaxis()->GetBinWidth(1);
    Double_t lowLimit = fHist->GetXaxis()->GetBinLowEdge(1);
@@ -1569,13 +1587,13 @@ void TH1Editor::DoAxisRange()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBinReleased()
 {
    // Slot connected to the rebin slider in case of a not ntuple histogram
    // Updates some other widgets which are related to the rebin slider.
 
    // draw the rebinned histogram in case of delay draw mode
+   if (fAvoidSignal) return;
    if (fDelaydraw->GetState()==kButtonDown){
       if (!fBinHist) {
          fBinHist = (TH1*)fHist->Clone("BinHist");
@@ -1618,7 +1636,6 @@ void TH1Editor::DoBinReleased()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBinMoved(Int_t numx)
 {
    // Slot connected to the rebin slider in case of a not ntuple histogram
@@ -1626,6 +1643,7 @@ void TH1Editor::DoBinMoved(Int_t numx)
 
    // create a clone in the background, when the slider is moved for 
    // the first time
+   if (fAvoidSignal) return;
    if (!fBinHist /*&& fDelaydraw->GetState()!=kButtonDown*/) {
       Int_t* divx = Dividers(fHist->GetXaxis()->GetNbins());
       if (divx[0]==2) return;
@@ -1672,11 +1690,11 @@ void TH1Editor::DoBinMoved(Int_t numx)
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBinPressed()
 {
    // Slot connected to the rebin slider in case of a not ntuple histogram.
 
+   if (fAvoidSignal) return;
    Int_t* d = Dividers(fHist->GetXaxis()->GetNbins());
    if (d[0]==2 && !fBinHist) {
       new TGMsgBox(fClient->GetDefaultRoot(), this->GetMainFrame(),
@@ -1688,12 +1706,12 @@ void TH1Editor::DoBinPressed()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBinReleased1()
 {               
    // Slot connected to the BinNumber Slider in case of a ntuple histogram
    // (does the Rebinning of the histogram). 
 
+   if (fAvoidSignal) return;
    Double_t oldOffset = fOffsetNumberEntry->GetNumber();   
    Int_t number = fBinSlider1->GetPosition();
    if (number==5) return;
@@ -1750,12 +1768,12 @@ void TH1Editor::DoBinReleased1()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBinMoved1()
 {
    // Slot connected to the rebin slider in case of an ntuple histogram.
    // It updates the BinNumberEntryField during the BinSlider movement.
    
+   if (fAvoidSignal) return;
    TAxis* xaxis = fHist->GetXaxis();
    Int_t first = xaxis->GetFirst();
    Int_t last = xaxis->GetLast();
@@ -1774,11 +1792,11 @@ void TH1Editor::DoBinMoved1()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBinLabel()
 {
    // Slot connected to the Bin number entry of the Rebinning tab.
    
+   if (fAvoidSignal) return;
    Int_t num = (Int_t)(fBinNumberEntry->GetNumber());
    Int_t nx = 0;
    if (fBinHist) nx = fBinHist->GetXaxis()->GetNbins();
@@ -1802,11 +1820,11 @@ void TH1Editor::DoBinLabel()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBinLabel1()
 {
    // Slot connected to the Bin number entry of the Rebinning tab.
    
+   if (fAvoidSignal) return;
    Double_t oldOffset = fOffsetNumberEntry->GetNumber();
    Int_t num = (Int_t)fBinNumberEntry1->GetNumber();   
    TAxis* xaxis = fHist->GetXaxis();
@@ -1852,17 +1870,16 @@ void TH1Editor::DoBinLabel1()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoOffsetPressed()
 {
    // Slot connected to the OffSetSlider that saves the OldBinOffset 
    // (nessesary for delay draw mode).
    
+   if (fAvoidSignal) return;
    fOldOffset = fOffsetNumberEntry->GetNumber();
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoOffsetReleased()
 {
    // Slot connected to the OffSetSlider.
@@ -1872,6 +1889,7 @@ void TH1Editor::DoOffsetReleased()
    // !!problem: histogram with variable binwidth??
    // computes the new histogram in "delay draw" mode
    
+   if (fAvoidSignal) return;
    if (fDelaydraw->GetState()==kButtonDown) {
       Int_t num = (Int_t) fBinOffsetSld->GetPosition();
       TAxis* xaxis = fHist->GetXaxis();
@@ -1910,7 +1928,6 @@ void TH1Editor::DoOffsetReleased()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoOffsetMoved(Int_t num)
 {
    // Slot connected to the OffSetSlider.
@@ -1920,6 +1937,7 @@ void TH1Editor::DoOffsetMoved(Int_t num)
    // !!histogram with variable binwidth??
    // !!only works for histograms with fixed binwidth
 
+   if (fAvoidSignal) return;
    TAxis* xaxis = fHist->GetXaxis();   
    Double_t binWidth = xaxis->GetBinWidth(1);
    Double_t offset =  1.*num/100*binWidth;
@@ -1959,12 +1977,12 @@ void TH1Editor::DoOffsetMoved(Int_t num)
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoBinOffset()
 {
    // Slot connected to the OffSetNumberEntry which is related to the 
    // OffSetSlider changes the origin of the histogram inbetween a binwidth.
 
+   if (fAvoidSignal) return;
    TAxis* xaxis = fHist->GetXaxis();   
    Double_t binWidth = xaxis->GetBinWidth(1);
    Double_t offset =  fOffsetNumberEntry->GetNumber();
@@ -2000,7 +2018,6 @@ void TH1Editor::DoBinOffset()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoApply()
 {
    // Slot connected to the Apply button of the Binning tab.
@@ -2031,7 +2048,6 @@ void TH1Editor::DoApply()
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::DoCancel()
 {
    // Slot connected to the Cancel button of the Binning tab.
@@ -2058,7 +2074,6 @@ void TH1Editor::DoCancel()
 }
 
 //______________________________________________________________________________
-
 TString TH1Editor::GetHistTypeLabel()
 {
    // Returns the selected histogram type (HIST, LEGO1-2, SURF1-5).
@@ -2082,7 +2097,6 @@ TString TH1Editor::GetHistTypeLabel()
 }
 
 //______________________________________________________________________________
-
 TString TH1Editor::GetHistCoordsLabel()
 {
    // Return the selected coordinate system of the histogram (POL,CYL,SPH,PSR).
@@ -2104,7 +2118,6 @@ TString TH1Editor::GetHistCoordsLabel()
 }
 
 //______________________________________________________________________________
-
 TString TH1Editor::GetHistErrorLabel()
 {
    // Return the selected error type (E,E1-5).
@@ -2125,7 +2138,6 @@ TString TH1Editor::GetHistErrorLabel()
 }
 
 //______________________________________________________________________________
-
 TString TH1Editor::GetHistAddLabel()
 {
    // Return the selected shape of the histogram (C, L, LF2).
@@ -2156,7 +2168,6 @@ TString TH1Editor::GetHistAddLabel()
 }
 
 //______________________________________________________________________________
-
 TGComboBox* TH1Editor::BuildHistTypeComboBox(TGFrame* parent, Int_t id)
 {
    // Create histogram type combo box.
@@ -2177,7 +2188,6 @@ TGComboBox* TH1Editor::BuildHistTypeComboBox(TGFrame* parent, Int_t id)
 }
 
 //______________________________________________________________________________
-
 TGComboBox* TH1Editor::BuildHistCoordsComboBox(TGFrame* parent, Int_t id)
 {
    // Create coordinate system type combo box.
@@ -2196,7 +2206,6 @@ TGComboBox* TH1Editor::BuildHistCoordsComboBox(TGFrame* parent, Int_t id)
 }
 
 //______________________________________________________________________________
-
 TGComboBox* TH1Editor::BuildHistErrorComboBox(TGFrame* parent, Int_t id)
 {
    // Create error type combo box.
@@ -2214,7 +2223,6 @@ TGComboBox* TH1Editor::BuildHistErrorComboBox(TGFrame* parent, Int_t id)
 }
 
 //______________________________________________________________________________
-
 TGComboBox* TH1Editor::BuildHistAddComboBox(TGFrame* parent, Int_t id)
 {
    // Create Line/Bar combo box.
@@ -2231,7 +2239,6 @@ TGComboBox* TH1Editor::BuildHistAddComboBox(TGFrame* parent, Int_t id)
 }
 
 //______________________________________________________________________________
-
 TGComboBox* TH1Editor::BuildPercentComboBox(TGFrame* parent, Int_t id)
 {
    // Create Percentage combo box for bar option.
@@ -2250,7 +2257,6 @@ TGComboBox* TH1Editor::BuildPercentComboBox(TGFrame* parent, Int_t id)
 }
 
 //______________________________________________________________________________
-
 void TH1Editor::ChangeErrorCombo(Int_t i)
 {
    // Change the error combo box entry.
@@ -2280,7 +2286,6 @@ void TH1Editor::ChangeErrorCombo(Int_t i)
 }
 
  //______________________________________________________________________________
-
 void TH1Editor::PaintBox3D(Float_t *p1, Float_t *p2,Float_t *p3, Float_t *p4) 
 {
    // Paint a 3D box.
@@ -2296,7 +2301,6 @@ void TH1Editor::PaintBox3D(Float_t *p1, Float_t *p2,Float_t *p3, Float_t *p4)
 }
 
 //______________________________________________________________________________
-
 Int_t* TH1Editor::Dividers(Int_t n)
 {
    // Return an array of dividers of n (without the trivial divider n).
@@ -2331,7 +2335,6 @@ Int_t* TH1Editor::Dividers(Int_t n)
 }   
    
 //______________________________________________________________________________
-
 void TH1Editor::CreateBinTab()
 {
    // Create the Binning tab.
diff --git a/ged/src/TH2Editor.cxx b/ged/src/TH2Editor.cxx
index 399718e726ce46abee5899be152c79062662aff1..7d0f05508cd11c210088ea65e7e75519c206a23d 100644
--- a/ged/src/TH2Editor.cxx
+++ b/ged/src/TH2Editor.cxx
@@ -174,7 +174,6 @@ enum ETH2Wid {
 };
 
 //______________________________________________________________________________
-
 TH2Editor::TH2Editor(const TGWindow *p, Int_t id, Int_t width,
                          Int_t height, UInt_t options, Pixel_t back)
    : TGedFrame(p, id, width, height, options | kVerticalFrame, back)
@@ -711,7 +710,6 @@ TH2Editor::TH2Editor(const TGWindow *p, Int_t id, Int_t width,
 }
 
 //______________________________________________________________________________
-
 TH2Editor::~TH2Editor()
 {
    // Destructor of TH2 editor.
@@ -732,8 +730,8 @@ TH2Editor::~TH2Editor()
                   if (!strcmp(el2->fFrame->ClassName(), "TGCompositeFrame"))
                      ((TGCompositeFrame *)el2->fFrame)->Cleanup();
                }
+               ((TGCompositeFrame *)el1->fFrame)->Cleanup();
             }
-            ((TGCompositeFrame *)el1->fFrame)->Cleanup();
          }
          ((TGCompositeFrame *)el->fFrame)->Cleanup();
       }
@@ -759,14 +757,12 @@ TH2Editor::~TH2Editor()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::ConnectSignals2Slots()
 {
    // Connect signals to slots.
 
    fTitle->Connect("TextChanged(const char *)", "TH2Editor", this, "DoTitle(const char *)");
-   fDim->Connect("Pressed()","TH2Editor",this,"DoHistSimple()");
-   fDim0->Connect("Pressed()","TH2Editor",this,"DoHistComplex()");   
+   fDimGroup->Connect("Released(Int_t)","TH2Editor",this,"DoHistView()");
    fTypeCombo->Connect("Selected(Int_t)", "TH2Editor", this, "DoHistChanges()");   
    fCoordsCombo->Connect("Selected(Int_t)", "TH2Editor", this, "DoHistChanges()");
    fContCombo->Connect("Selected(Int_t)", "TH2Editor", this, "DoHistChanges()");   
@@ -833,7 +829,6 @@ void TH2Editor::ConnectSignals2Slots()
 } 
 
 //______________________________________________________________________________
-
 void TH2Editor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 {
    // Pick up the values of current histogram attributes.
@@ -860,6 +855,7 @@ void TH2Editor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
       return;
    }      */
 
+   fAvoidSignal = kTRUE;
    if (fBinHist && (obj != fHist)) {
       //we have probably moved to a different pad.
       //let's restore the original histogram
@@ -883,6 +879,9 @@ void TH2Editor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
    fHist = (TH2*) fModel;
    
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kWatch);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kWatch));
+
    //set the selected object name on Binning tab
    TString string;
    string.Append(fModel->GetName());
@@ -1139,31 +1138,51 @@ void TH2Editor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    }
    if (!fTab->IsEnabled(fTab->GetCurrent())) fTab->SetTab(0);
 
-   Layout();
+//   Layout();
    fTab->Layout();   
 
    if (fInit) ConnectSignals2Slots();
    fTab->SetEnabled(1, kTRUE); 
-   SetActive(kTRUE);        
-//   Update();
+   SetActive(kTRUE);
+   fAvoidSignal = kFALSE;     
+
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kPointer);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kPointer));
 }
   
 //______________________________________________________________________________
-
 void TH2Editor::DoTitle(const char *text)
 {
    // Slot connected to the histogram title setting.
   
+   if (fAvoidSignal) return;
    fHist->SetTitle(text);
    Update();
 }
 
 //______________________________________________________________________________
+void TH2Editor::DoHistView()
+{
+   // Slot connected to the 'Plot' button group.
+
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kWatch);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kWatch));
+
+   if (fDim->GetState() == kButtonDown) 
+      DoHistSimple();
+   else 
+      DoHistComplex();
 
+   if (gPad) gPad->GetVirtCanvas()->SetCursor(kPointer);
+   gVirtualX->SetCursor(GetId(), gVirtualX->CreateCursor(kPointer));
+}
+
+//______________________________________________________________________________
 void TH2Editor::DoHistSimple()
 {
    // Slot connected to the 2D-Plot radio button.
    
+   if (fAvoidSignal) return;
    TString str = "";
    HideFrame(f3);
    HideFrame(f4);
@@ -1198,11 +1217,11 @@ void TH2Editor::DoHistSimple()
 }
    
 //______________________________________________________________________________
-
 void TH2Editor::DoHistComplex()
 {
    // Slot connected to the 3D-Plot radio button.
    
+   if (fAvoidSignal) return;
    TString str = "";
    ShowFrame(f3);
    ShowFrame(f4);
@@ -1242,11 +1261,11 @@ void TH2Editor::DoHistComplex()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoHistChanges()
 {
    // Slot connected to histogram type, coordinate system, contour combo box.
    
+   if (fAvoidSignal) return;
    TString str = "";
    if (fDim->GetState() == kButtonDown) {
       str = GetHistContLabel()+GetHistAdditiveLabel();
@@ -1313,11 +1332,11 @@ void TH2Editor::DoHistChanges()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddArr(Bool_t on)
 {
    // Slot connected to the "Arrow draw option" check button.
 
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1346,11 +1365,11 @@ void TH2Editor::DoAddArr(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddBox(Bool_t on)
 {
    // Slot connected to the "Box draw option" check button.
 
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1379,11 +1398,11 @@ void TH2Editor::DoAddBox(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddCol(Bool_t on)
 {
    // Slot connected to the "Col draw option" check button.
 
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1423,11 +1442,11 @@ void TH2Editor::DoAddCol(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddScat(Bool_t on)
 {
    // Slot connected to the "Scat draw option" check button.
 
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1450,11 +1469,11 @@ void TH2Editor::DoAddScat(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddText(Bool_t on)
 {
    // Slot connected to the "Text draw option" check button.
 
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1481,11 +1500,11 @@ void TH2Editor::DoAddText(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddError(Bool_t on)
 {
    // Slot connected to the "Error" check button.
 
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1514,11 +1533,11 @@ void TH2Editor::DoAddError(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddPalette(Bool_t on)
 {
    // Slot connected to the color palette check button. 
 
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1542,11 +1561,11 @@ void TH2Editor::DoAddPalette(Bool_t on)
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddFB()
 {
    // Slot connected to the "FB front-box draw option" check button.
    
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1577,11 +1596,11 @@ void TH2Editor::DoAddFB()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoAddBB()
 {
    // Slot connected to the "BB back-box draw option" check button.
    
+   if (fAvoidSignal) return;
    Bool_t make=kFALSE;
    TString str = GetDrawOption();
    str.ToUpper();
@@ -1609,55 +1628,55 @@ void TH2Editor::DoAddBB()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoContLevel()
 {
    // Slot connected to the contour level number entry fContLevels.
    
+   if (fAvoidSignal) return;
    fHist->SetContour((Int_t)fContLevels->GetNumber());
    fContLevels1->SetNumber((Int_t)fContLevels->GetNumber());
    Update();
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoContLevel1()
 {
    // Slot connected to the contour level number entry fContLevels1. 
    
+   if (fAvoidSignal) return;
    fHist->SetContour((Int_t)fContLevels1->GetNumber());
    fContLevels->SetNumber((Int_t)fContLevels1->GetNumber());   
    Update();
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBarWidth()
 {
    // Slot connected to the bar width of the bar chart.
    
+   if (fAvoidSignal) return;
    fHist->SetBarWidth(fBarWidth->GetNumber());
    Update();
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBarOffset()
 {
    // Slot connected to the bar offset of the bar chart.
    
+   if (fAvoidSignal) return;
    fHist->SetBarOffset((Float_t)fBarOffset->GetNumber());
    Update();
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBinReleased()
 {
    // Slot connected to the rebin slider in case of no ntuple histogram.
    // It updates some other widgets related to the rebin slider.
 
    // Draw the rebinned histogram in case of the delay draw mode
+   if (fAvoidSignal) return;
    if (fDelaydraw->GetState()==kButtonDown){
       if (!fBinHist) {
          fBinHist = (TH2*)fHist->Clone("BinHist");
@@ -1717,11 +1736,11 @@ void TH2Editor::DoBinReleased()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBinPressed()
 {
    // Slot connected to the rebin slider in case of no ntuple histogram.
 
+   if (fAvoidSignal) return;
    Int_t* divx = Dividers(fHist->GetXaxis()->GetNbins());
    Int_t* divy = Dividers(fHist->GetYaxis()->GetNbins());   
    if (divx[0]==2 && divy[0]==2 && !fBinHist) 
@@ -1732,13 +1751,13 @@ void TH2Editor::DoBinPressed()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBinMoved()
 {
    // Slot connected to the rebin sliders in case of no ntuple histogram
    // does the rebinning of the selected histogram. 
 
    // create a clone in the background, when the slider is moved for 1st time
+   if (fAvoidSignal) return;
    if (!fBinHist /*&& fDelaydraw->GetState()!=kButtonDown*/) {
       Int_t* divx = Dividers(fHist->GetXaxis()->GetNbins());
       Int_t* divy = Dividers(fHist->GetYaxis()->GetNbins());   
@@ -1815,11 +1834,11 @@ void TH2Editor::DoBinMoved()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBinLabel()
 {
    // Slot connected to the Bin Number Entry for the Rebin.
 
+   if (fAvoidSignal) return;
    Int_t i; 
    Int_t numx = (Int_t)(fBinXNumberEntry->GetNumber());
    Int_t numy = (Int_t)(fBinYNumberEntry->GetNumber());
@@ -1862,10 +1881,9 @@ void TH2Editor::DoBinLabel()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoApply()
 {
-   // Slot connected to the Cancel Button in the Rebinned histogram Window.
+   // Slot connected to the Apply Button in the Rebinned histogram Window.
 
    Int_t ret = 0;
    new TGMsgBox(fClient->GetDefaultRoot(), this->GetMainFrame(), 
@@ -1900,7 +1918,6 @@ void TH2Editor::DoApply()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoCancel()
 {
    // Slot connected to the Cancel Button in the Rebinned histogram Window.
@@ -1935,12 +1952,12 @@ void TH2Editor::DoCancel()
 
    
 //______________________________________________________________________________
-
 void TH2Editor::DoBinReleased1()
 {
    // Slot connected to the BinNumber Slider in case of a 'ntuple histogram'.
    // It does the rebin.
 
+   if (fAvoidSignal) return;
    Double_t oldXOffset = fXOffsetNumberEntry->GetNumber();   
    Int_t xnumber = fBinXSlider1->GetPosition();
    Double_t oldYOffset = fYOffsetNumberEntry->GetNumber();   
@@ -2038,12 +2055,12 @@ void TH2Editor::DoBinReleased1()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBinMoved1()
 {
    // Slot connected to the rebin slider in case of an ntuple histogram.
    // Updates the BinNumberEntryField during the BinSlider movement.
    
+   if (fAvoidSignal) return;
    TAxis* xaxis = fHist->GetXaxis();
    TAxis* yaxis = fHist->GetYaxis();   
    Int_t firstx = xaxis->GetFirst();
@@ -2078,11 +2095,11 @@ void TH2Editor::DoBinMoved1()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBinLabel1()
 {
    // Slot connected to the Bin Number Entry for the Rebin.
    
+   if (fAvoidSignal) return;
    Double_t oldXOffset = fXOffsetNumberEntry->GetNumber();
    Int_t numx = (Int_t)fBinXNumberEntry1->GetNumber();   
    Double_t oldYOffset = fYOffsetNumberEntry->GetNumber();
@@ -2157,18 +2174,17 @@ void TH2Editor::DoBinLabel1()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoOffsetPressed()
 {
    // Slot connected to the OffSetSlider. It saves the OldBinOffset 
    // (nessesary for delay draw mode).
 
+   if (fAvoidSignal) return;
    fOldXOffset = fXOffsetNumberEntry->GetNumber();
    fOldYOffset = fYOffsetNumberEntry->GetNumber();
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoOffsetReleased()
 {
    // Slot connected to the OffSetSlider that
@@ -2176,6 +2192,7 @@ void TH2Editor::DoOffsetReleased()
    // rebin the histogram with the new Offset given by the slider.
    // problem: histogram with variable binwidth??
 
+   if (fAvoidSignal) return;
    if (fDelaydraw->GetState()==kButtonDown){
       Int_t numx = (Int_t)fXBinOffsetSld->GetPosition();
       Int_t numy = (Int_t)fYBinOffsetSld->GetPosition();
@@ -2236,7 +2253,6 @@ void TH2Editor::DoOffsetReleased()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoOffsetMoved()
 {
    // Slot connected to the OffSetSlider.
@@ -2244,6 +2260,7 @@ void TH2Editor::DoOffsetMoved()
    // rebin the histogram with the new offset given by the slider.
    // problem: histogram with variable binwidth??
 
+   if (fAvoidSignal) return;
    Int_t numx = (Int_t)fXBinOffsetSld->GetPosition();
    Int_t numy = (Int_t)fYBinOffsetSld->GetPosition();
    TAxis* xaxis = fHist->GetXaxis();   
@@ -2308,12 +2325,12 @@ void TH2Editor::DoOffsetMoved()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoBinOffset()
 {
    // Slot connected to the OffSetNumberEntry, related to the OffSetSlider
    // changes the origin of the histogram inbetween a binwidth.
 
+   if (fAvoidSignal) return;
    TAxis* xaxis = fHist->GetXaxis();   
    TAxis* yaxis = fHist->GetYaxis();      
    Double_t xBinWidth = xaxis->GetBinWidth(1);
@@ -2368,12 +2385,12 @@ void TH2Editor::DoBinOffset()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoSliderXMoved()
 {
    // Slot connected to the x-Slider that redraws the histogram 
    // with the new slider range.
    
+   if (fAvoidSignal) return;
    TAxis* xaxis = fHist->GetXaxis();
    if (fDelaydraw->GetState()==kButtonDown && fDim->GetState()==kButtonDown) {
       // 2D plot
@@ -2453,12 +2470,12 @@ void TH2Editor::DoSliderXMoved()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoSliderXPressed()
 {
    // Slot connected to the x axis range slider that initialises
    // the "virtual" box which is drawn in delay draw mode.
    
+   if (fAvoidSignal) return;
    TAxis* xaxis = fHist->GetXaxis();
    Float_t ymin,ymax,xleft,xright;
    if (fDelaydraw->GetState()==kButtonDown && fDim->GetState()==kButtonDown) {
@@ -2503,12 +2520,12 @@ void TH2Editor::DoSliderXPressed()
 }
    
 //______________________________________________________________________________
-
 void TH2Editor::DoSliderXReleased()
 {
    // Slot connected to the x-axis slider finalizing values after 
    // the slider movement. 
 
+   if (fAvoidSignal) return;
    if (fDelaydraw->GetState()==kButtonDown) {
       fHist->GetXaxis()->SetRange((Int_t)((fSliderX->GetMinPosition())+0.5),
                                   (Int_t)((fSliderX->GetMaxPosition())+0.5));
@@ -2526,7 +2543,6 @@ void TH2Editor::DoSliderXReleased()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoXAxisRange()
 {
    // Slot connected to the Max/Min number entry fields showing x-axis range.
@@ -2547,13 +2563,12 @@ void TH2Editor::DoXAxisRange()
 }
 
 //______________________________________________________________________________
-
-
 void TH2Editor::DoSliderYMoved()
 {
    // Slot connected to the x-slider for redrawing the
    // histogram with the new slider Range (immediately).
    
+   if (fAvoidSignal) return;
    TAxis* yaxis = fHist->GetYaxis();
    if (fDelaydraw->GetState()==kButtonDown && fDim->GetState()==kButtonDown) {
       Int_t px1,py1,px2,py2;
@@ -2632,12 +2647,12 @@ void TH2Editor::DoSliderYMoved()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoSliderYPressed()
 {
    // Slot connected to y-axis slider which initialises
    // the "virtual" box which is drawn in delay draw mode.
    
+   if (fAvoidSignal) return;
    TAxis* yaxis = fHist->GetYaxis();
    Float_t xmin,xmax,ytop,ybottom;
    if (fDelaydraw->GetState()==kButtonDown && fDim->GetState()==kButtonDown) {
@@ -2682,12 +2697,12 @@ void TH2Editor::DoSliderYPressed()
 }
    
 //______________________________________________________________________________
-
 void TH2Editor::DoSliderYReleased()
 {
    // Slot connected to the y-axis slider finalizing values after 
    // the slider movement. 
 
+   if (fAvoidSignal) return;
    if (fDelaydraw->GetState()==kButtonDown) {
       fHist->GetYaxis()->SetRange((Int_t)((fSliderY->GetMinPosition())+0.5),
                                   (Int_t)((fSliderY->GetMaxPosition())+0.5));
@@ -2706,11 +2721,11 @@ void TH2Editor::DoSliderYReleased()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoYAxisRange()
 {
    // Slot connected to the Max/Min number entry fields showing y-axis range.
 
+   if (fAvoidSignal) return;
    TAxis* yaxis = fHist->GetYaxis();
    Int_t ny = yaxis->GetNbins();
    Double_t width = yaxis->GetBinWidth(1);
@@ -2729,31 +2744,28 @@ void TH2Editor::DoYAxisRange()
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoFillColor(Pixel_t color)
 {
    // Slot connected to the fill area color.
 
-   if (!fPad) return;
+   if (fAvoidSignal || !fPad) return;
    fPad->cd();
    fPad->SetFrameFillColor(TColor::GetColor(color));
    Update();
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::DoFillPattern(Style_t pattern)
 {
    // Slot connected to the fill area pattern.
 
-   if (!fPad) return;
+   if (fAvoidSignal || !fPad) return;
    fPad->cd();
    fPad->SetFrameFillStyle(pattern);
    Update();
 }
 
 //______________________________________________________________________________
-
 TString TH2Editor::GetHistTypeLabel()
 {
    // Return the immediate histogram type (HIST, LEGO1-2, SURF1-5).
@@ -2776,7 +2788,6 @@ TString TH2Editor::GetHistTypeLabel()
 }
 
 //______________________________________________________________________________
-
 TString TH2Editor::GetHistCoordsLabel()
 {
    // Return the immediate coordinate system of the histogram. 
@@ -2796,7 +2807,6 @@ TString TH2Editor::GetHistCoordsLabel()
 }
 
 //______________________________________________________________________________
-
 TString TH2Editor::GetHistContLabel()
 {
    // Returns histogram contour option (None,Cont0..5).
@@ -2816,7 +2826,6 @@ TString TH2Editor::GetHistContLabel()
 }
 
 //______________________________________________________________________________
-
 TString TH2Editor::GetHistAdditiveLabel()
 {
    // Return histogram additive options (Arr,Box,Col,Scat,Col,Text,E,Z,FB,BB).
@@ -2839,7 +2848,6 @@ TString TH2Editor::GetHistAdditiveLabel()
 }
 
 //______________________________________________________________________________
-
 TGComboBox* TH2Editor::BuildHistTypeComboBox(TGFrame* parent, Int_t id)
 {
    // Create histogram type combo box.
@@ -2860,7 +2868,6 @@ TGComboBox* TH2Editor::BuildHistTypeComboBox(TGFrame* parent, Int_t id)
 }
 
 //______________________________________________________________________________
-
 TGComboBox* TH2Editor::BuildHistCoordsComboBox(TGFrame* parent, Int_t id)
 {
    // Create coordinate system combo box.
@@ -2879,7 +2886,6 @@ TGComboBox* TH2Editor::BuildHistCoordsComboBox(TGFrame* parent, Int_t id)
 }
 
 //______________________________________________________________________________
-
 TGComboBox* TH2Editor::BuildHistContComboBox(TGFrame* parent, Int_t id)
 {
    // Create contour combo box.
@@ -2897,7 +2903,6 @@ TGComboBox* TH2Editor::BuildHistContComboBox(TGFrame* parent, Int_t id)
 }
 
 //______________________________________________________________________________
-
 void TH2Editor::PaintBox3D(Float_t *p1, Float_t *p2,Float_t *p3, Float_t *p4) 
 {
    // Paint a square in 3D.
@@ -2908,7 +2913,6 @@ void TH2Editor::PaintBox3D(Float_t *p1, Float_t *p2,Float_t *p3, Float_t *p4)
    fPad->PaintLine3D(p4, p1);
 }
 //______________________________________________________________________________
-
 Int_t* TH2Editor::Dividers(Int_t n)
 {
    // Give an array of dividers of n (without the trivial divider n))
diff --git a/ged/src/TLineEditor.cxx b/ged/src/TLineEditor.cxx
index 035d633146f61bb41ccaa09e1dd2c3b0a7a30967..ea81eabfa4c5625e44e7d5085f5e813b37fbb5fd 100644
--- a/ged/src/TLineEditor.cxx
+++ b/ged/src/TLineEditor.cxx
@@ -1,4 +1,4 @@
-// @(#)root/ged:$Name:  $:$Id: TLineEditor.cxx,v 1.1 2006/04/25 08:14:20 antcheva Exp $
+// @(#)root/ged:$Name:  $:$Id: TLineEditor.cxx,v 1.2 2006/04/25 16:15:07 antcheva Exp $
 // Author: Ilka  Antcheva 24/04/06
 
 /*************************************************************************
@@ -171,6 +171,7 @@ void TLineEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
 
    fLine = (TLine *)fModel;
+   fAvoidSignal = kTRUE;
 
    Float_t val = fLine->GetX1();
    fStartPointX->SetNumber(val);
@@ -192,6 +193,7 @@ void TLineEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -199,6 +201,7 @@ void TLineEditor::DoStartPoint()
 {
    // Slot connected to the line start point.
 
+   if (fAvoidSignal) return;
    fLine->SetX1((Double_t)fStartPointX->GetNumber());
    fLine->SetY1((Double_t)fStartPointY->GetNumber());
    fLine->Paint(fLine->GetDrawOption());
@@ -209,6 +212,7 @@ void TLineEditor::DoEndPoint()
 {
    // Slot connected to the line EndPoint.
 
+   if (fAvoidSignal) return;
    fLine->SetX2((Double_t)fEndPointX->GetNumber());
    fLine->SetY2((Double_t)fEndPointY->GetNumber());
    fLine->Paint(fLine->GetDrawOption());
@@ -220,6 +224,7 @@ void TLineEditor::DoLineVertical()
 {
    // Slot so set the line vertical
 
+   if (fAvoidSignal) return;
    if (fVertical->GetState() == kButtonDown) {
       fLine->SetVertical();
       fHorizontal->SetState(kButtonUp, kFALSE);
@@ -234,6 +239,7 @@ void TLineEditor::DoLineHorizontal()
 {
    // Slot so set the line horizontal
 
+   if (fAvoidSignal) return;
    if (fHorizontal->GetState() == kButtonDown) {
       fLine->SetHorizontal();
       fVertical->SetState(kButtonUp, kFALSE);
diff --git a/ged/src/TPadEditor.cxx b/ged/src/TPadEditor.cxx
index 266f07b677c275e0aed642863fc179a269660b9c..84145e986b156e7624c3d1be7aa3e51a33e27e84 100644
--- a/ged/src/TPadEditor.cxx
+++ b/ged/src/TPadEditor.cxx
@@ -117,35 +117,29 @@ TPadEditor::TPadEditor(const TGWindow *p, Int_t id, Int_t width,
    AddFrame(f5, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));
 
    TGCompositeFrame *f6 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
-   TGButtonGroup *bgr = new TGButtonGroup(f6,3,1,3,0, "Border Mode");
-   bgr->SetRadioButtonExclusive(kTRUE);
-   fBmode = new TGRadioButton(bgr, " Sunken border", 77);
+   fBgroup = new TGButtonGroup(f6,3,1,3,0, "Border Mode");
+   fBgroup->SetRadioButtonExclusive(kTRUE);
+   fBmode = new TGRadioButton(fBgroup, " Sunken border", 77);
    fBmode->SetToolTipText("Set a sinken border of the pad/canvas");
-   fBmode0 = new TGRadioButton(bgr, " No border", 78);
+   fBmode0 = new TGRadioButton(fBgroup, " No border", 78);
    fBmode0->SetToolTipText("Set no border of the pad/canvas");
-   fBmode1 = new TGRadioButton(bgr, " Raised border", 79);
+   fBmode1 = new TGRadioButton(fBgroup, " Raised border", 79);
    fBmode1->SetToolTipText("Set a raised border of the pad/canvas");
-   bgr->SetButton(79, kTRUE);
-   bgr->SetLayoutHints(new TGLayoutHints(kLHintsLeft, 0,0,3,0), fBmode);
-   bgr->Show();
-   bgr->ChangeOptions(kFitWidth|kChildFrame|kVerticalFrame);
-   f6->AddFrame(bgr, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 1, 0, 0));
+   fBgroup->SetLayoutHints(new TGLayoutHints(kLHintsLeft, 0,0,3,0), fBmode);
+   fBgroup->Show();
+   fBgroup->ChangeOptions(kFitWidth|kChildFrame|kVerticalFrame);
+   f6->AddFrame(fBgroup, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 1, 0, 0));
    AddFrame(f6, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));
    
-   f7 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
+   TGCompositeFrame *f7 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
    TGLabel *fSizeLbl = new TGLabel(f7, "Size:");                              
    f7->AddFrame(fSizeLbl, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 6, 1, 0, 0));
    fBsize = new TGLineWidthComboBox(f7, kPAD_BSIZE);
-   fBsize->Connect("Selected(Int_t)", "TPadEditor", this, "DoBorderSize(Int_t)"); 
    fBsize->Resize(92, 20);
    f7->AddFrame(fBsize, new TGLayoutHints(kLHintsLeft, 13, 1, 0, 0));
    fBsize->Associate(this);
    AddFrame(f7, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));
 
-   MapSubwindows();
-   Layout();
-   MapWindow();
-
    TClass *cl = TPad::Class();
    TGedElement *ge = new TGedElement;
    ge->fGedFrame = this;
@@ -198,9 +192,7 @@ void TPadEditor::ConnectSignals2Slots()
    fLogX->Connect("Toggled(Bool_t)","TPadEditor",this,"DoLogX(Bool_t)");
    fLogY->Connect("Toggled(Bool_t)","TPadEditor",this,"DoLogY(Bool_t)");
    fLogZ->Connect("Toggled(Bool_t)","TPadEditor",this,"DoLogZ(Bool_t)");
-   fBmode->Connect("Toggled(Bool_t)","TPadEditor",this,"DoBorderMode()");
-   fBmode0->Connect("Toggled(Bool_t)","TPadEditor",this,"DoBorderMode()");
-   fBmode1->Connect("Toggled(Bool_t)","TPadEditor",this,"DoBorderMode()");
+   fBgroup->Connect("Released(Int_t)","TPadEditor",this,"DoBorderMode()");
    
    fInit = kFALSE;
 }
@@ -222,7 +214,7 @@ void TPadEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
 
    fPadPointer = (TPad *)fModel;
-   
+   fAvoidSignal = kTRUE;
    Bool_t on;
 
    on = fPadPointer->HasFixedAspectRatio();
@@ -267,10 +259,16 @@ void TPadEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    else fTickY->SetState(kButtonUp);
 
    par = fPadPointer->GetBorderMode();
-   if (par == -1) fBmode->SetState(kButtonDown);
-   else if (par == 1) fBmode1->SetState(kButtonDown);
-   else fBmode0->SetState(kButtonDown);
-
+   if (par == -1) {
+      fBgroup->SetButton(77, kTRUE);
+      fBsize->SetEnabled(kTRUE);
+   } else if (par == 1) {
+      fBgroup->SetButton(79, kTRUE);
+      fBsize->SetEnabled(kTRUE);
+   } else {
+      fBgroup->SetButton(78, kTRUE);
+      fBsize->SetEnabled(kFALSE);
+   }
    par = fPadPointer->GetBorderSize();
    if (par < 1) par = 1;
    if (par > 16) par = 16;
@@ -278,6 +276,7 @@ void TPadEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -285,6 +284,7 @@ void TPadEditor::DoEditable(Bool_t on)
 {
    // Slot connected to the check box 'Editable'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetEditable(on);
    Update();
 }
@@ -294,6 +294,7 @@ void TPadEditor::DoCrosshair(Bool_t on)
 {
    // Slot connected to the check box 'Crosshair'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetCrosshair(on);
    Update();
 }
@@ -303,6 +304,7 @@ void TPadEditor::DoFixedAspectRatio(Bool_t on)
 {
    // Slot connected to the check box 'Fixed aspect ratio'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetFixedAspectRatio(on);
    Update();
 }
@@ -312,6 +314,7 @@ void TPadEditor::DoGridX(Bool_t on)
 {
    // Slot connected to the check box 'GridX'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetGridx(on);
    Update();
 }
@@ -321,6 +324,7 @@ void TPadEditor::DoGridY(Bool_t on)
 {
    // Slot connected to the check box 'GridY'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetGridy(on);
    Update();
 }
@@ -330,6 +334,7 @@ void TPadEditor::DoLogX(Bool_t on)
 {
    // Slot connected to the check box 'LogX'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetLogx(on);
    Update();
 }
@@ -339,6 +344,7 @@ void TPadEditor::DoLogY(Bool_t on)
 {
    // Slot connected to the check box 'LogY'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetLogy(on);
    Update();
 }
@@ -348,6 +354,7 @@ void TPadEditor::DoLogZ(Bool_t on)
 {
    // Slot connected to the check box 'LogZ'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetLogz(on);
    Update();
 }
@@ -357,6 +364,7 @@ void TPadEditor::DoTickX(Bool_t on)
 {
    // Slot connected to the check box 'TickX'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetTickx(on);
    Update();
 }
@@ -366,6 +374,7 @@ void TPadEditor::DoTickY(Bool_t on)
 {
    // Slot connected to the check box 'TickY'.
 
+   if (fAvoidSignal) return;
    fPadPointer->SetTicky(on);
    Update();
 }
@@ -374,27 +383,28 @@ void TPadEditor::DoTickY(Bool_t on)
 void TPadEditor::DoBorderMode()
 {
    // Slot connected to the border mode settings.
-   
+
+   if (fAvoidSignal) return;
    Int_t mode = 0;
    if (fBmode->GetState() == kButtonDown) mode = -1;
    else if (fBmode0->GetState() == kButtonDown) mode = 0;
    else mode = 1;
 
-   if (!mode) HideFrame(f7);
-   else ShowFrame(f7);
-   Layout();
-   
+   if (!mode) {
+      fBsize->SetEnabled(kFALSE);
+   } else {
+      fBsize->SetEnabled(kTRUE);
+   }
    fPadPointer->SetBorderMode(mode);
    Update();
-   gPad->Modified();
-   gPad->Update();
 }
 
 //______________________________________________________________________________
 void TPadEditor::DoBorderSize(Int_t size)
 {
    // Slot connected to the border size settings.
-   
+
+   if (fAvoidSignal) return;
    fPadPointer->SetBorderSize(size);
    Update();
 }
diff --git a/ged/src/TPaveStatsEditor.cxx b/ged/src/TPaveStatsEditor.cxx
index c43b620fdbc79dfe6dd48628cf1a1448c3ad38e3..9f787f59c3cb99b3dc3691457998bb430d056e66 100644
--- a/ged/src/TPaveStatsEditor.cxx
+++ b/ged/src/TPaveStatsEditor.cxx
@@ -206,6 +206,7 @@ void TPaveStatsEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
    fPad = pad;
 
    fPaveStats = (TPaveStats *)fModel;
+   fAvoidSignal = kTRUE;
    
    Int_t stat = fPaveStats->GetOptStat();
 
@@ -255,6 +256,7 @@ void TPaveStatsEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t)
 
    if (fInit) ConnectSignals2Slots();
    SetActive();
+   fAvoidSignal = kFALSE;
 }
 
 //______________________________________________________________________________
@@ -262,6 +264,7 @@ void TPaveStatsEditor::DoStatOptions()
 {
    // Slot connected to the stat options.
 
+   if (fAvoidSignal) return;
    Int_t stat = 0;
    if (fHistoName->GetState()   == kButtonDown) stat +=1;
    if (fEntries->GetState()     == kButtonDown) stat +=10;
@@ -293,6 +296,7 @@ void TPaveStatsEditor::DoFitOptions()
 {
    // Slot connected to the fit options.
 
+   if (fAvoidSignal) return;
    Int_t fit = 0;
    if (fNameValues->GetState()  == kButtonDown) fit +=1;
    if (fErrors->GetState()      == kButtonDown) fit +=10;
@@ -310,5 +314,6 @@ void TPaveStatsEditor::SetValuesON(Bool_t on)
    // Slot connected to the selection of the button 'Errors':
    // check button Values should be selected if Errors is selected.
    
+   if (fAvoidSignal) return;
    if (on == kTRUE) fNameValues->SetState(kButtonDown);
 }