CANVAS_DEBUG_NAME (hv_scroll_group, "canvas hv scroll");
_track_canvas->add_scroller (*hsg);
- cursor_scroll_group = cg = new ArdourCanvas::ScrollGroup (_track_canvas->root(), ArdourCanvas::ScrollGroup::ScrollsHorizontally);
+ cursor_scroll_group = cg = new ArdourCanvas::ScrollGroup (_track_canvas->root(), ArdourCanvas::ScrollGroup::ScrollsHorizontally, false);
CANVAS_DEBUG_NAME (cursor_scroll_group, "canvas cursor scroll");
_track_canvas->add_scroller (*cg);
ScrollsHorizontally = 0x2
};
- ScrollGroup (Canvas*, ScrollSensitivity);
- ScrollGroup (Item*, ScrollSensitivity);
+ ScrollGroup (Canvas*, ScrollSensitivity, bool clip=true);
+ ScrollGroup (Item*, ScrollSensitivity, bool clip=true);
void scroll_to (Duple const& d);
Duple scroll_offset() const { return _scroll_offset; }
private:
ScrollSensitivity _scroll_sensitivity;
Duple _scroll_offset;
+ bool _clip;
};
}
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)
{
}
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,