Index: trunk/MagicSoft/Mars/mhist/MH.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MH.cc	(revision 2138)
+++ trunk/MagicSoft/Mars/mhist/MH.cc	(revision 2150)
@@ -55,4 +55,5 @@
 #include <TH2.h>
 #include <TH3.h>
+#include <TStyle.h>       // TStyle::GetScreenFactor
 #include <TGaxis.h>
 #include <TCanvas.h>
@@ -128,6 +129,11 @@
 // number of all existing canvases plus one)
 //
+// Normally the canvas size is scaled with gStyle->GetScreenFactor() so
+// that on all screens it looks like the same part of the screen.
+// To suppress this scaling use usescreenfactor=kFALSE. In this case
+// you specify directly the size of the embedded pad.
+//
 TCanvas *MH::MakeDefCanvas(TString name, const char *title,
-                           const UInt_t w, const UInt_t h)
+                           UInt_t w, UInt_t h, Bool_t usescreenfactor)
 {
     const TList *list = (TList*)gROOT->GetListOfCanvases();
@@ -139,4 +145,13 @@
         name += Form(" <%d>", list->GetSize()+1);
 
+    if (!usescreenfactor)
+    {
+        const Float_t cx = gStyle->GetScreenFactor();
+        w += 4;
+        h += 28;
+        w = (int)(w/cx+1);
+        h = (int)(h/cx+1);
+    }
+
     return new TCanvas(name, title, w, h);
 }
@@ -147,7 +162,21 @@
 // and title are retrieved from the given TObject.
 //
+// Normally the canvas size is scaled with gStyle->GetScreenFactor() so
+// that on all screens it looks like the same part of the screen.
+// To suppress this scaling use usescreenfactor=kFALSE. In this case
+// you specify directly the size of the embedded pad.
+//
 TCanvas *MH::MakeDefCanvas(const TObject *obj,
-                           const UInt_t w, const UInt_t h)
-{
+                           UInt_t w, UInt_t h, Bool_t usescreenfactor)
+{
+    if (!usescreenfactor)
+    {
+        const Float_t cx = gStyle->GetScreenFactor();
+        w += 4;
+        h += 28;
+        h = (int)(h/cx+1);
+        w = (int)(w/cx+1);
+    }
+
     return MakeDefCanvas(obj->GetName(), obj->GetTitle(), w, h);
 }
Index: trunk/MagicSoft/Mars/mhist/MH.h
===================================================================
--- trunk/MagicSoft/Mars/mhist/MH.h	(revision 2138)
+++ trunk/MagicSoft/Mars/mhist/MH.h	(revision 2150)
@@ -33,7 +33,9 @@
 
     static TCanvas *MakeDefCanvas(TString name="", const char *title="",
-                                  const UInt_t w=625, const UInt_t h=440);
+                                  UInt_t w=625, UInt_t h=440,
+                                  Bool_t usescreenfactor=kTRUE);
     static TCanvas *MakeDefCanvas(const TObject *obj,
-                                  const UInt_t w=625, const UInt_t h=440);
+                                  UInt_t w=625, UInt_t h=440,
+                                  Bool_t usescreenfactor=kFALSE);
 
     // FIXME: * --> & !!!
