X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fui%2Fview%2Fedit-widget.cpp;h=bac6854a13e873d874e65526fc3a0bee10c7788c;hb=0dd12485e26b98c7eb9963768ec4bd9869186d98;hp=f386aefcce57e575905f56b19e3676b46537c147;hpb=385709d739bf6cc29c933d533868f011ebc9fd73;p=inkscape.git diff --git a/src/ui/view/edit-widget.cpp b/src/ui/view/edit-widget.cpp index f386aefcc..bac6854a1 100644 --- a/src/ui/view/edit-widget.cpp +++ b/src/ui/view/edit-widget.cpp @@ -1342,7 +1342,9 @@ EditWidget::deactivateDesktop() void EditWidget::viewSetPosition (NR::Point p) { - p -= _namedview->gridorigin; + // p -= _namedview->gridorigin; + /// \todo Why was the origin corrected for the grid origin? (johan) + double lo, up, pos, max; _top_ruler.get_range (lo, up, pos, max); _top_ruler.set_range (lo, up, p[NR::X], max); @@ -1353,18 +1355,19 @@ EditWidget::viewSetPosition (NR::Point p) void EditWidget::updateRulers() { - NR::Point origin = _namedview->gridorigin; - + //NR::Point gridorigin = _namedview->gridorigin; + /// \todo Why was the origin corrected for the grid origin? (johan) + NR::Rect const viewbox = _svg_canvas.spobj()->getViewbox(); double lo, up, pos, max; double const scale = _desktop->current_zoom(); - double s = viewbox.min()[NR::X] / scale - origin[NR::X]; - double e = viewbox.max()[NR::X] / scale - origin[NR::X]; + double s = viewbox.min()[NR::X] / scale; //- gridorigin[NR::X]; + double e = viewbox.max()[NR::X] / scale; //- gridorigin[NR::X]; _top_ruler.get_range(lo, up, pos, max); _top_ruler.set_range(s, e, pos, e); - s = viewbox.min()[NR::Y] / -scale - origin[NR::Y]; - e = viewbox.max()[NR::Y] / -scale - origin[NR::Y]; - _left_ruler.set_range(s, e, origin[NR::Y], e); + s = viewbox.min()[NR::Y] / -scale; //- gridorigin[NR::Y]; + e = viewbox.max()[NR::Y] / -scale; //- gridorigin[NR::Y]; + _left_ruler.set_range(s, e, 0 /*gridorigin[NR::Y]*/, e); /// \todo is that correct? } @@ -1380,11 +1383,11 @@ EditWidget::updateScrollbars (double scale) /* The desktop region we always show unconditionally */ SPDocument *doc = _desktop->doc(); - NR::Rect const r = sp_item_bbox_desktop(SP_ITEM(SP_DOCUMENT_ROOT(doc))); - NR::Rect darea(NR::Point(MIN(r.min()[NR::X], -sp_document_width(doc)), - MIN(r.min()[NR::Y], -sp_document_height(doc))), - NR::Point(MAX(r.max()[NR::X], 2 * sp_document_width(doc)), - MAX(r.max()[NR::Y], 2 * sp_document_height(doc)))); + NR::Rect darea = NR::Rect(NR::Point(-sp_document_width(doc), + -sp_document_height(doc)), + NR::Point(2 * sp_document_width(doc), + 2 * sp_document_height(doc))); + darea = NR::union_bounds(darea, sp_item_bbox_desktop(SP_ITEM(SP_DOCUMENT_ROOT(doc)))); /* Canvas region we always show unconditionally */ NR::Rect carea(NR::Point(darea.min()[NR::X] * scale - 64, @@ -1630,7 +1633,7 @@ EditWidget::onWindowRealize() NR::Rect d(NR::Point(0, 0), NR::Point(sp_document_width(_desktop->doc()), sp_document_height(_desktop->doc()))); - if (fabs(d.dimensions()[NR::X]) < 1.0 || fabs(d.dimensions()[NR::Y]) < 1.0) { + if (d.isEmpty(1.0)) { return; }