Index: trunk/FACT++/gui/FactGui.h
===================================================================
--- trunk/FACT++/gui/FactGui.h	(revision 11647)
+++ trunk/FACT++/gui/FactGui.h	(revision 11649)
@@ -181,11 +181,21 @@
     }
 
-    double align(double min, double val, double max) const
-    {
-        if (val<min)
-            return min;
-        if (val>max)
-            return max;
-        return val;
+    int GetCol(double dmin, double val, double dmax, bool enable)
+    {
+        if (!enable)
+            return kWhite;
+
+        if (val<dmin)
+            return kBlue+4;//kBlack;
+
+        if (val>dmax)
+            return kRed+4;//kWhite;
+
+        const double min   = dmin;
+        const double scale = dmax==dmin ? 1 : dmax-dmin;
+
+        const int col = (val-min)/scale*(fPalette.size()-1);
+
+        return gStyle->GetColorPalette(col);
     }
 
@@ -219,7 +229,7 @@
         }
 
-        if (fMin<0)
+        if (fMin>=0)
             dmin = fMin;
-        if (fMax<0)
+        if (fMax>=0)
             dmax = fMax;
 
@@ -236,13 +246,7 @@
                 continue;
 
-            const double val = align(dmin, fData[cnt], dmax);
-
-            const int col = (val-min)/scale*(fPalette.size()-1);
-
-            if (fEnable[cnt])
-                fill.SetFillColor(gStyle->GetColorPalette(col));
-            else
-                fill.SetFillColor(kWhite);
-
+            const int col = GetCol(dmin, fData[cnt], dmax, fEnable[cnt]);
+
+            fill.SetFillColor(col);
             fill.Modify();
 
@@ -259,12 +263,7 @@
                 continue;
 
-            const double val = align(dmin, fData[cnt], dmax);
-
-            const int col = (val-min)/scale*(fPalette.size()-1);
-
-            if (fEnable[cnt])
-                fill.SetFillColor(gStyle->GetColorPalette(col));
-            else
-                fill.SetFillColor(kWhite);
+            const int col = GetCol(dmin, fData[cnt], dmax, fEnable[cnt]);
+
+            fill.SetFillColor(col);
             fill.Modify();
 
@@ -283,12 +282,7 @@
         line.Modify();
 
-        const double val = align(dmin, fData[fWhite], dmax);
-
-        const int col = (val-min)/scale*(fPalette.size()-1);
-
-        if (fEnable[fWhite])
-            fill.SetFillColor(gStyle->GetColorPalette(col));
-        else
-            fill.SetFillColor(kWhite);
+        const int col = GetCol(dmin, fData[fWhite], dmax, fEnable[fWhite]);
+
+        fill.SetFillColor(col);
         fill.Modify();
 
@@ -2763,6 +2757,6 @@
     void on_fThresholdDisableOthers_clicked()
     {
-        const uint16_t isw = fThresholdIdx->value();
-        const uint16_t ihw = isw<0 ? -1 : fPatchMapHW[isw];
+        const int16_t isw = fThresholdIdx->value();
+        const int16_t ihw = isw<0 ? -1 : fPatchMapHW[isw];
 
         Dim::SendCommand("FTM_CONTROL/DISABLE_ALL_PATCHES_EXCEPT", ihw);
@@ -3076,4 +3070,6 @@
         Camera *cam = new Camera;
         cam->SetBit(kCanDelete);
+        cam->SetMin(fRatesMin->value());
+        cam->SetMax(fRatesMax->value());
         cam->Draw();
 
