]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/imagjpeg.cpp
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / src / common / imagjpeg.cpp
index 51ba2d1e9ce10e7bf5618857182b5c45eda22f3b..3fe43f782198e81c928d89178137b497725ac971 100644 (file)
@@ -2,7 +2,6 @@
 // Name:        src/common/imagjpeg.cpp
 // Purpose:     wxImage JPEG handler
 // Author:      Vaclav Slavik
-// RCS-ID:      $Id$
 // Copyright:   (c) Vaclav Slavik
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -257,7 +256,7 @@ bool wxJPEGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbos
       }
       (cinfo.src->term_source)(&cinfo);
       jpeg_destroy_decompress(&cinfo);
-      if (image->Ok()) image->Destroy();
+      if (image->IsOk()) image->Destroy();
       return false;
     }
 
@@ -291,7 +290,7 @@ bool wxJPEGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbos
     jpeg_start_decompress( &cinfo );
 
     image->Create( cinfo.output_width, cinfo.output_height );
-    if (!image->Ok()) {
+    if (!image->IsOk()) {
         jpeg_finish_decompress( &cinfo );
         jpeg_destroy_decompress( &cinfo );
         return false;
@@ -334,6 +333,13 @@ bool wxJPEGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbos
         image->SetOption(wxIMAGE_OPTION_RESOLUTIONUNIT, cinfo.density_unit);
     }
 
+    if ( cinfo.image_width != cinfo.output_width || cinfo.image_height != cinfo.output_height )
+    {
+        // save the original image size
+        image->SetOption(wxIMAGE_OPTION_ORIGINAL_WIDTH, cinfo.image_width);
+        image->SetOption(wxIMAGE_OPTION_ORIGINAL_HEIGHT, cinfo.image_height);
+    }
+
     jpeg_finish_decompress( &cinfo );
     jpeg_destroy_decompress( &cinfo );
     return true;