summaryrefslogtreecommitdiff
path: root/libs/canvas/scroll_group.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2015-01-16 21:04:38 -0500
committerDavid Robillard <d@drobilla.net>2015-01-16 21:04:38 -0500
commit8f823388d9bd5aa8e297ab05be8c9fb323518945 (patch)
treebc0b1659c6bb33c7f048c0f67939a81a0f523b1a /libs/canvas/scroll_group.cc
parent14a235ca8a21ae46cc211df8250bab42ba42a85f (diff)
Kludgey fix for invisible playhead when scrolled.
The problem this is avoiding makes absolutely no sense. Either I'm dumb, or something is more deeply wrong with scroll group bounding boxes, or both, but I don't care anymore. This works. Viva release mode.
Diffstat (limited to 'libs/canvas/scroll_group.cc')
-rw-r--r--libs/canvas/scroll_group.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/libs/canvas/scroll_group.cc b/libs/canvas/scroll_group.cc
index 1562643b4a..ad3731116a 100644
--- a/libs/canvas/scroll_group.cc
+++ b/libs/canvas/scroll_group.cc
@@ -27,15 +27,17 @@
using namespace std;
using namespace ArdourCanvas;
-ScrollGroup::ScrollGroup (Canvas* c, ScrollSensitivity s)
+ScrollGroup::ScrollGroup (Canvas* c, ScrollSensitivity s, bool clip)
: Container (c)
, _scroll_sensitivity (s)
+ , _clip(clip)
{
}
-ScrollGroup::ScrollGroup (Item* parent, ScrollSensitivity s)
+ScrollGroup::ScrollGroup (Item* parent, ScrollSensitivity s, bool clip)
: Container (parent)
, _scroll_sensitivity (s)
+ , _clip(clip)
{
}
@@ -52,6 +54,14 @@ ScrollGroup::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) c
return;
}
+ if (!_clip) {
+ /* kludge: clip disabled, because for some reason the cursor scroll
+ group requires scroll offsets here to clip correctly yet everything
+ else does not. I can't figure this out, so since not clipping a
+ single arrow isn't the end of the world, just don't clip. */
+ Container::render (area, context);
+ }
+
Rect self (_position.x + r.get().x0,
_position.y + r.get().y0,
_position.x + r.get().x1,