Update ghost note presence when mouse mode is changed. Fixes #3559.
[ardour.git] / gtk2_ardour / canvas-note.h
index b65eae53d60b4ebcab4c99df6ca1fa13e8cc7a94..49a37c17c9a4e6cc988eb5109fe0c3534f4bf41f 100644 (file)
 namespace Gnome {
 namespace Canvas {
 
-class CanvasNote : public SimpleRect, public CanvasNoteEvent {
-public:
+class CanvasNote : public SimpleRect, public CanvasNoteEvent 
+{
+ public:
        typedef Evoral::Note<Evoral::MusicalTime> NoteType;
 
+       CanvasNote (MidiRegionView&                   region,
+                   Group&                            group,
+                   const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>(),
+                    bool with_events = true);
+
        double x1() { return property_x1(); }
        double y1() { return property_y1(); }
        double x2() { return property_x2(); }
@@ -46,12 +52,19 @@ public:
 
        bool on_event(GdkEvent* ev);
        void move_event(double dx, double dy);
+};
 
-       CanvasNote (MidiRegionView&                   region,
-                   Group&                            group,
-                   const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>())
-               : SimpleRect(group), CanvasNoteEvent(region, this, note)
-       {
+class NoEventCanvasNote : public CanvasNote
+{
+  public:
+       NoEventCanvasNote (MidiRegionView& region,
+                           Group& group,
+                           const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>())
+               : CanvasNote (region, group, note, false) {}
+        
+       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;
        }
 };