summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/canvas-noevent-rect.h44
-rw-r--r--gtk2_ardour/region_view.cc5
2 files changed, 47 insertions, 2 deletions
diff --git a/gtk2_ardour/canvas-noevent-rect.h b/gtk2_ardour/canvas-noevent-rect.h
new file mode 100644
index 0000000000..edfeae670d
--- /dev/null
+++ b/gtk2_ardour/canvas-noevent-rect.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2009 Paul Davis <paul@linuxaudiosystems.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef __gtk2_ardour_canvas_noevent_rect_h__
+#define __gtk2_ardour_canvas_noevent_rect_h__
+
+#include "simplerect.h"
+
+namespace Gnome { namespace Canvas {
+
+class NoEventSimpleRect : public SimpleRect
+{
+ public:
+ NoEventSimpleRect(Group& parent, double x1, double y1, double x2, double y2)
+ : SimpleRect (parent, x1, y1, x2, y2) {}
+ NoEventSimpleRect(Group& parent)
+ : SimpleRect (parent) {}
+
+ double point_vfunc(double, double, int, int, GnomeCanvasItem**) {
+ /* return a huge value to tell the canvas that we're never the item for an event */
+ return 9999999999999.0;
+ }
+};
+
+} } /* namespaces */
+
+#endif /* __gtk2_ardour_canvas_noevent_text_h__ */
diff --git a/gtk2_ardour/region_view.cc b/gtk2_ardour/region_view.cc
index 4db77f030d..a0fd276d12 100644
--- a/gtk2_ardour/region_view.cc
+++ b/gtk2_ardour/region_view.cc
@@ -33,6 +33,7 @@
#include "ardour_ui.h"
#include "global_signals.h"
#include "canvas-noevent-text.h"
+#include "canvas-noevent-rect.h"
#include "streamview.h"
#include "region_view.h"
#include "automation_region_view.h"
@@ -238,7 +239,7 @@ RegionView::set_silent_frames (const AudioIntervalResult& silences, double /*thr
for (AudioIntervalResult::const_iterator i = silences.begin(); i != silences.end(); ++i) {
- ArdourCanvas::SimpleRect* cr = new ArdourCanvas::SimpleRect (*group);
+ ArdourCanvas::SimpleRect* cr = new ArdourCanvas::NoEventSimpleRect (*group);
_silent_frames.push_back (cr);
/* coordinates for the rect are relative to the regionview origin */
@@ -796,7 +797,7 @@ RegionView::update_coverage_frames (LayerDisplay d)
/* start off any new rect, if required */
if (cr == 0 || me != new_me) {
- cr = new ArdourCanvas::SimpleRect (*group);
+ cr = new ArdourCanvas::NoEventSimpleRect (*group);
_coverage_frames.push_back (cr);
cr->property_x1() = trackview.editor().frame_to_pixel (t - position);
cr->property_y1() = 1;