summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/gdkpixbuf-input.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-03-29 23:52:42 +0000
committerMarkus Engel <markus.engel@tum.de>2013-03-29 23:52:42 +0000
commita168040d5a452544328a1e6ad35aaac351f94d44 (patch)
treefae1ba829f543a473da281bd5fa6e4deabbf6912 /src/extension/internal/gdkpixbuf-input.cpp
parentRemoved function pointers from SPObject and subclasses. (diff)
parentDutch translation update (diff)
downloadinkscape-a168040d5a452544328a1e6ad35aaac351f94d44.tar.gz
inkscape-a168040d5a452544328a1e6ad35aaac351f94d44.zip
merged from trunk
(bzr r11608.1.56)
Diffstat (limited to 'src/extension/internal/gdkpixbuf-input.cpp')
-rw-r--r--src/extension/internal/gdkpixbuf-input.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/extension/internal/gdkpixbuf-input.cpp b/src/extension/internal/gdkpixbuf-input.cpp
index 30c4d4338..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,10 +92,10 @@ 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())
- xscale = 90.0 / ir->x();
+ if (ir && ir->ok())
+ xscale = 900.0 / floor(10.*ir->x() + .5); // round-off to 0.1 dpi
else
xscale = 90.0 / defaultxdpi;
}
@@ -107,10 +108,10 @@ 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())
- yscale = 90.0 / ir->y();
+ if (ir && ir->ok())
+ yscale = 900.0 / floor(10.*ir->y() + .5); // round-off to 0.1 dpi
else
yscale = 90.0 / defaultxdpi;
}