* nsimage.m (EmacsImage-setPixelAtX:Y:toRed:green:blue:alpha:): Fix color values...
authorAdrian Robert <Adrian.B.Robert@gmail.com>
Wed, 21 Jan 2009 22:28:45 +0000 (22:28 +0000)
committerAdrian Robert <Adrian.B.Robert@gmail.com>
Wed, 21 Jan 2009 22:28:45 +0000 (22:28 +0000)
src/ChangeLog
src/nsimage.m
src/nsterm.m

index c250ead..90e83f0 100644 (file)
        (EmacsPrefsController-setPanelFromDefaultValues) New function.
        (EmacsPrefsController-resetToDefaults:): Use it. (Bug#1801)
        (ns_font_to_xlfd, ns_fontname_to_xlfd): Remove, unused.
+       (ns_defined_color): Fix settings of the XColor variable fields:
+       red,green,blue scale to 2-byte, pixel's parts to 1-byte. (Bug#1663)
 
-       * nsimage.m (EmacsImage+allocInitFromFile:): Set to ignore DPI.
-       (Bug#1316)
+       * nsimage.m (EmacsImage+allocInitFromFile:): Set to ignore image
+       DPI. (Bug#1316)
+       (EmacsImage-setPixelAtX:Y:toRed:green:blue:alpha:): Fix color
+       values in onTiger section.
 
 2009-01-19  Chong Yidong  <cyd@stupidchicken.com>
 
index f99a9d2..b13c129 100644 (file)
@@ -453,7 +453,8 @@ static EmacsImage *ImageList = nil;
   else if (onTiger)
     {
       [bmRep setColor:
-               [NSColor colorWithCalibratedRed: r green: g blue: b alpha: a]
+               [NSColor colorWithCalibratedRed: (r/255.0) green: (g/255.0)
+                                          blue: (b/255.0) alpha: (a/255.0)]
                   atX: x y: y];
     }
 }
index fba0e72..826efc4 100644 (file)
@@ -1610,14 +1610,14 @@ ns_defined_color (struct frame *f, char *name, XColor *color_def, int alloc,
       color_def->pixel = ns_index_color(temp, f); /* [temp retain]; */
 
   [temp getRed: &r green: &g blue: &b alpha: &a];
-  color_def->red   = r * 256;
-  color_def->green = g * 256;
-  color_def->blue  = b * 256;
+  color_def->red   = r * 65535;
+  color_def->green = g * 65535;
+  color_def->blue  = b * 65535;
 
   if (!makeIndex)
     color_def->pixel
-      = ARGB_TO_ULONG((int)(a*256),
-                     color_def->red, color_def->green, color_def->blue);
+      = ARGB_TO_ULONG((int)(a*255),
+                     (int)(r*255), (int)(g*255), (int)(b*255));
 
   return 1;
 }