Index: trunk/MagicSoft/Mars/mmain/MGMenu.cc
===================================================================
--- trunk/MagicSoft/Mars/mmain/MGMenu.cc	(revision 2053)
+++ trunk/MagicSoft/Mars/mmain/MGMenu.cc	(revision 2054)
@@ -213,11 +213,11 @@
         // was pressed close the popup.
         //
-        if (!rc || event->fCode==9/*ESC*/)
-        {
-            f.SetState(kFALSE);
-            gVirtualX->GrabPointer(0, 0, 0, 0, kFALSE);  // ungrab pointer
-            fCurrent = 0;
-        }
-
+        if (rc && event->fCode!=9/*ESC*/)
+            return kTRUE;
+
+        f.SetState(kFALSE);
+        gVirtualX->GrabPointer(0, 0, 0, 0, kFALSE);  // ungrab pointer
+        gVirtualX->SetKeyAutoRepeat(kTRUE); // set in TGMainFrame::HandleKey
+        fCurrent = 0;
         return kTRUE;
     }
Index: trunk/MagicSoft/Mars/mmain/MStatusDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/mmain/MStatusDisplay.cc	(revision 2053)
+++ trunk/MagicSoft/Mars/mmain/MStatusDisplay.cc	(revision 2054)
@@ -80,4 +80,5 @@
 #include <TGButton.h>             // TGPictureButton
 #include <TGListBox.h>            // TGListBox
+#include <TGStatusBar.h>          // TGStatusBar
 #include <TGProgressBar.h>        // TGHProgressBar
 
@@ -219,4 +220,11 @@
         f->AddFrame(mars, lay2);
     }
+    /*
+     TGShutter *s = new TGShutter(f);
+     fList->Add(s);
+     f->AddFrame(s, lay);
+     s->AddItem(new TGShutterItem(s, new TGHotString("Hallo1")));
+     s->AddItem(new TGShutterItem(s, new TGHotString("Hallo2")));
+     */
 
     // Add date and time
@@ -304,5 +312,5 @@
 
     // Add fTab to Frame
-    TGLayoutHints *laytabs = new TGLayoutHints(kLHintsNormal|kLHintsExpandX|kLHintsExpandY, 5, 6, 5);
+    TGLayoutHints *laytabs = new TGLayoutHints(kLHintsNormal|kLHintsExpandX|kLHintsExpandY, 5, 5, 5);
     AddFrame(fTab, laytabs);
 
@@ -317,5 +325,5 @@
 void MStatusDisplay::AddProgressBar()
 {
-    TGLayoutHints *laybar=new TGLayoutHints(kLHintsExpandX, 5, 6, 5, 5);
+    TGLayoutHints *laybar=new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5);
     fList->Add(laybar);
 
@@ -329,35 +337,17 @@
 // --------------------------------------------------------------------------
 //
-// Adds the status lines to the GUI
-//
-void MStatusDisplay::AddStatusLines()
-{
-    TGHorizontalFrame *hf = new TGHorizontalFrame(this, 1, 1);
-
-    TGCompositeFrame *f = new TGCompositeFrame(hf, 1, 1, kSunkenFrame);
-
-    fLine1 = new TGLabel(f, "");
-
-    TGLayoutHints *lay = new TGLayoutHints(kLHintsNormal|kLHintsExpandX, 0, 5);
-    f->AddFrame(fLine1, lay);
-    hf->AddFrame(f, lay);
-
-    fList->Add(f);
-    fList->Add(fLine1);
-    fList->Add(lay);
-
-    f = new TGCompositeFrame(hf, 1, 1, kSunkenFrame);
-
-    fLine2 = new TGLabel(f, "");
-    f->AddFrame(fLine2, lay);
-    hf->AddFrame(f, lay);
-
-    TGLayoutHints *layf = new TGLayoutHints(kLHintsNormal|kLHintsExpandX, 5, 0, 0, 3);
-    AddFrame(hf, layf);
-
-    fList->Add(layf);
-    fList->Add(f);
-    fList->Add(fLine2);
-    fList->Add(hf);
+// Adds the status bar to the GUI
+//
+void MStatusDisplay::AddStatusBar()
+{
+    fStatusBar = new TGStatusBar(this, 1, 1);
+
+    fStatusBar->SetParts(2);
+
+    TGLayoutHints *layb = new TGLayoutHints(kLHintsNormal|kLHintsExpandX, 5, 4, 0, 3);
+    AddFrame(fStatusBar, layb);
+
+    fList->Add(fStatusBar);
+    fList->Add(layb);
 }
 
@@ -368,6 +358,6 @@
 void MStatusDisplay::SetStatusLine1(const char *txt)
 {
-    fLine1->SetText(txt);
-    gClient->ProcessEventsFor(fLine1);
+    fStatusBar->SetText(txt, 0);
+    gClient->ProcessEventsFor(fStatusBar);
 }
 
@@ -378,6 +368,6 @@
 void MStatusDisplay::SetStatusLine2(const char *txt)
 {
-    fLine2->SetText(txt);
-    gClient->ProcessEventsFor(fLine2);
+    fStatusBar->SetText(txt, 1);
+    gClient->ProcessEventsFor(fStatusBar);
 }
 
@@ -404,7 +394,9 @@
 //
 MStatusDisplay::MStatusDisplay(Long_t t)
-: TGMainFrame(gClient->GetRoot(), 1, 1), fTimer(this, t, kTRUE), fLog(&gLog), fLogIdx(-1), fLogTimer(this, 250, kTRUE), fLogBox(NULL)
+: TGMainFrame(gClient->GetRoot(), 1, 1), fTimer(this, t, kTRUE), fStatus(kLoopNone), fLog(&gLog), fLogIdx(-1), fLogTimer(this, 250, kTRUE), fLogBox(NULL)
 {
     gROOT->GetListOfSpecials()->Add(this);
+    gROOT->GetListOfCleanups()->Add(this);
+
 
     //
@@ -434,5 +426,5 @@
     AddTabs();
     AddProgressBar();
-    AddStatusLines();
+    AddStatusBar();
 
     //
@@ -447,9 +439,5 @@
     MapWindow();
 
-    //lient->ProcessEventsFor(this);
     gSystem->ProcessEvents();
-
-    //TSeqCollection   *GetListOfCleanups() const   {return fCleanups;}
-
 }
 
@@ -466,4 +454,5 @@
 
     gROOT->GetListOfSpecials()->Remove(this);
+    gROOT->GetListOfCleanups()->Remove(this);
 } 
 
Index: trunk/MagicSoft/Mars/mmain/MStatusDisplay.h
===================================================================
--- trunk/MagicSoft/Mars/mmain/MStatusDisplay.h	(revision 2053)
+++ trunk/MagicSoft/Mars/mmain/MStatusDisplay.h	(revision 2054)
@@ -23,6 +23,6 @@
 
 class TGTab;
-class TGLabel;
 class TGListBox;
+class TGStatusBar;
 class TGProgressBar;
 class TGHProgressBar;
@@ -69,6 +69,5 @@
     TTimer fTimer;
 
-    TGLabel *fLine1;
-    TGLabel *fLine2;
+    TGStatusBar *fStatusBar;
 
     Status_t fStatus;
@@ -86,5 +85,5 @@
     void AddLogTab();
     void AddTabs();
-    void AddStatusLines();
+    void AddStatusBar();
 
     TCanvas *GetCanvas(TGCompositeFrame *f) const;
