summaryrefslogtreecommitdiffstats
path: root/src/extension
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2010-04-06 14:11:54 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2010-04-06 14:11:54 +0000
commit95a0c8412e84f5e0cc1d9a63fce2be75f9fa517e (patch)
tree12ea4d0d88ad2a94be630f6634aef3b88460748f /src/extension
parentFixed use of dialogs in more than one window, and tile problem with selection... (diff)
downloadinkscape-95a0c8412e84f5e0cc1d9a63fce2be75f9fa517e.tar.gz
inkscape-95a0c8412e84f5e0cc1d9a63fce2be75f9fa517e.zip
Revert the inverted coordinate system fix. 3D Boxes and guides
require an XML-level backwards compatibility mechanism to fix properly, and it's too late in the 0.48 cycle to introduce it. (bzr r9298)
Diffstat (limited to 'src/extension')
-rw-r--r--src/extension/internal/cairo-renderer.cpp6
-rw-r--r--src/extension/internal/grid.cpp18
-rw-r--r--src/extension/internal/latex-text-renderer.cpp3
3 files changed, 18 insertions, 9 deletions
diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp
index 52f070591..6e4bb3b7e 100644
--- a/src/extension/internal/cairo-renderer.cpp
+++ b/src/extension/internal/cairo-renderer.cpp
@@ -631,8 +631,12 @@ CairoRenderer::setupDocument(CairoRenderContext *ctx, SPDocument *doc, bool page
if (ret && !pageBoundingBox)
{
+ double high = sp_document_height(doc);
+ if (ctx->_vector_based_target)
+ high *= PT_PER_PX;
+
Geom::Matrix tp(Geom::Translate(-d.x0 * (ctx->_vector_based_target ? PX_PER_PT : 1.0),
- -d.y0 * (ctx->_vector_based_target ? PX_PER_PT : 1.0)));
+ (d.y1 - high) * (ctx->_vector_based_target ? PX_PER_PT : 1.0)));
ctx->transform(&tp);
}
diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp
index deef367a4..d4b35b261 100644
--- a/src/extension/internal/grid.cpp
+++ b/src/extension/internal/grid.cpp
@@ -46,12 +46,13 @@ Grid::load (Inkscape::Extension::Extension */*module*/)
namespace {
-void build_lines(int axis, Geom::Rect bounding_area, float offset,
- float spacing, SVG::PathString &path_data)
+Glib::ustring build_lines(int axis, Geom::Rect bounding_area,
+ float offset, float spacing)
{
Geom::Point point_offset(0.0, 0.0);
point_offset[axis] = offset;
+ SVG::PathString path_data;
for (Geom::Point start_point = bounding_area.min();
start_point[axis] + offset <= (bounding_area.max())[axis];
start_point[axis] += spacing) {
@@ -61,6 +62,8 @@ void build_lines(int axis, Geom::Rect bounding_area, float offset,
path_data.moveTo(start_point + point_offset)
.lineTo(end_point + point_offset);
}
+
+ return path_data;
}
}
@@ -86,8 +89,10 @@ Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *doc
if (bounds) {
bounding_area = *bounds;
}
- Geom::Rect temprec = Geom::Rect(Geom::Point(bounding_area.min()[Geom::X], bounding_area.min()[Geom::Y]),
- Geom::Point(bounding_area.max()[Geom::X], bounding_area.max()[Geom::Y]));
+
+ gdouble doc_height = sp_document_height(document->doc());
+ Geom::Rect temprec = Geom::Rect(Geom::Point(bounding_area.min()[Geom::X], doc_height - bounding_area.min()[Geom::Y]),
+ Geom::Point(bounding_area.max()[Geom::X], doc_height - bounding_area.max()[Geom::Y]));
bounding_area = temprec;
}
@@ -98,9 +103,10 @@ Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *doc
float offsets[2] = { module->get_param_float("xoffset"),
module->get_param_float("yoffset") };
- SVG::PathString path_data;
+ Glib::ustring path_data("");
for ( int axis = 0 ; axis < 2 ; ++axis ) {
- build_lines(axis, bounding_area, offsets[axis], spacings[axis], path_data);
+ path_data += build_lines(axis, bounding_area,
+ offsets[axis], spacings[axis]);
}
Inkscape::XML::Document * xml_doc = sp_document_repr_doc(document->doc());
diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp
index 1fdf1d7fd..28bba1beb 100644
--- a/src/extension/internal/latex-text-renderer.cpp
+++ b/src/extension/internal/latex-text-renderer.cpp
@@ -501,8 +501,7 @@ LaTeXTextRenderer::setupDocument(SPDocument *doc, bool pageBoundingBox, SPItem *
if (!pageBoundingBox)
{
- Geom::Translate t(-d->min()[Geom::X], d->max()[Geom::Y] - sp_document_height(doc));
- push_transform( t );
+ push_transform( Geom::Translate( - d->min() ) );
}
// flip y-axis