changeset 101318:06994fb0863f

* nsimage.m (EmacsImage+allocInitFromFile:): Set to ignore DPI. (Bug#1316)
author Adrian Robert <Adrian.B.Robert@gmail.com>
date Wed, 21 Jan 2009 17:28:05 +0000
parents 88cb3b251e87
children a776dcbbb2c5
files src/ChangeLog src/nsimage.m
diffstat 2 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed Jan 21 17:09:28 2009 +0000
+++ b/src/ChangeLog	Wed Jan 21 17:28:05 2009 +0000
@@ -1,12 +1,16 @@
 2009-01-21  Adrian Robert  <Adrian.B.Robert@gmail.com>
 
 	* nsmenu.m (NSMENUPROFILE): Change #if style.
+
 	* nsterm.m: (x_set_frame_alpha): Add prototype.
 	(ns_fake_keydown, EmacsView-keyUp:): New variable and function to
 	handle Ctrl-tab.  (Bug#1841)
 	(ns_get_color): Use unsigned long long for scanned hex string value.
 	(ns_term_shutdown): Abort on non SIGTERM signals.
 
+	* nsimage.m (EmacsImage+allocInitFromFile:): Set to ignore DPI.
+	(Bug#1316)
+
 2009-01-19  Chong Yidong  <cyd@stupidchicken.com>
 
 	* xfaces.c (Finternal_set_lisp_face_attribute, Fx_list_fonts):
--- a/src/nsimage.m	Wed Jan 21 17:09:28 2009 +0000
+++ b/src/nsimage.m	Wed Jan 21 17:28:05 2009 +0000
@@ -163,6 +163,7 @@
 + allocInitFromFile: (Lisp_Object)file
 {
   EmacsImage *image = ImageList;
+  NSImageRep *imgRep;
   Lisp_Object found;
 
   /* look for an existing image of the same name */
@@ -185,12 +186,18 @@
   image = [[EmacsImage alloc] initByReferencingFile:
                      [NSString stringWithUTF8String: SDATA (found)]];
 
-  if ([image bestRepresentationForDevice: nil] == nil)
+  imgRep = [image bestRepresentationForDevice: nil];
+  if (imgRep == nil)
     {
       [image release];
       return nil;
     }
 
+  /* The next two lines cause the DPI of the image to be ignored.
+     This seems to be the behavior users expect. */
+  [image setScalesWhenResized: YES];
+  [image setSize: NSMakeSize([imgRep pixelsWide], [imgRep pixelsHigh])];
+
   [image setName: [NSString stringWithUTF8String: SDATA (file)]];
   [image reference];
   ImageList = [image imageListSetNext: ImageList];