summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-02-08 15:03:00 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-02-08 15:03:00 +0000
commit8ef8bfc64ffba6d87cdb8ffcd6ecd535e2391641 (patch)
treeb82e7645652ad321164f9830e55ec9132e93aaad
parente44b6a79a1cbe3315f8994a2398948bbde9fdb44 (diff)
use new NoEventSimpleRect for coverage frames and silent frames, so that they don't steal events from notes by passing events directly to the region view parent group3.0-beta3
git-svn-id: svn://localhost/ardour2/branches/3.0@11474 d708f5d6-7413-0410-9779-e7cbd77b26cf
-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;