summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/canvas/canvas/item.h5
-rw-r--r--libs/canvas/item.cc6
2 files changed, 9 insertions, 2 deletions
diff --git a/libs/canvas/canvas/item.h b/libs/canvas/canvas/item.h
index 5483c5124c..980f11be07 100644
--- a/libs/canvas/canvas/item.h
+++ b/libs/canvas/canvas/item.h
@@ -148,6 +148,11 @@ public:
void canvas_to_item (Coord &, Coord &) const;
void item_to_canvas (Coord &, Coord &) const;
+ Duple canvas_to_item (Duple const&) const;
+ Rect item_to_canvas (Rect const&) const;
+ Duple item_to_canvas (Duple const&) const;
+ Rect canvas_to_item (Rect const&) const;
+
Duple item_to_window (Duple const&, bool rounded = true) const;
Duple window_to_item (Duple const&) const;
Rect item_to_window (Rect const&) const;
diff --git a/libs/canvas/item.cc b/libs/canvas/item.cc
index ddc05a817a..bab6e73b54 100644
--- a/libs/canvas/item.cc
+++ b/libs/canvas/item.cc
@@ -173,8 +173,10 @@ Item::item_to_window (ArdourCanvas::Duple const & d, bool rounded) const
{
Duple ret = item_to_canvas (d).translate (-scroll_offset());
- ret.x = round (ret.x);
- ret.y = round (ret.y);
+ if (rounded) {
+ ret.x = round (ret.x);
+ ret.y = round (ret.y);
+ }
return ret;
}