diff options
Diffstat (limited to 'src/extension/internal/gdkpixbuf-input.cpp')
| -rw-r--r-- | src/extension/internal/gdkpixbuf-input.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/extension/internal/gdkpixbuf-input.cpp b/src/extension/internal/gdkpixbuf-input.cpp index 6e6038993..abfad518f 100644 --- a/src/extension/internal/gdkpixbuf-input.cpp +++ b/src/extension/internal/gdkpixbuf-input.cpp @@ -80,6 +80,7 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri) double width = gdk_pixbuf_get_width(pb); double height = gdk_pixbuf_get_height(pb); double defaultxdpi = prefs->getDouble("/dialogs/import/defaultxdpi/value", PX_PER_IN); + bool forcexdpi = prefs->getBool("/dialogs/import/forcexdpi"); ImageResolution *ir = 0; double xscale = 1; double yscale = 1; @@ -91,9 +92,9 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri) xscale = 72.0 / (double)dpi; } } else { - if (!ir) + if (!ir && !forcexdpi) ir = new ImageResolution(uri); - if (ir->ok()) + if (ir && ir->ok()) xscale = 900.0 / floor(10.*ir->x() + .5); // round-off to 0.1 dpi else xscale = 90.0 / defaultxdpi; @@ -107,9 +108,9 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri) yscale = 72.0 / (double)dpi; } } else { - if (!ir) + if (!ir && !forcexdpi) ir = new ImageResolution(uri); - if (ir->ok()) + if (ir && ir->ok()) yscale = 900.0 / floor(10.*ir->y() + .5); // round-off to 0.1 dpi else yscale = 90.0 / defaultxdpi; |
