projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Chris's work on the region list
[ardour.git]
/
gtk2_ardour
/
canvas-note.cc
diff --git
a/gtk2_ardour/canvas-note.cc
b/gtk2_ardour/canvas-note.cc
index 5e8eb6904f0f654836e5b592f237cecad23295c9..973ab4db6dfef12e5c8f8808701c5f6707e8c2ad 100644
(file)
--- a/
gtk2_ardour/canvas-note.cc
+++ b/
gtk2_ardour/canvas-note.cc
@@
-1,7
+1,7
@@
#include "canvas-note.h"
#include "midi_region_view.h"
#include "public_editor.h"
#include "canvas-note.h"
#include "midi_region_view.h"
#include "public_editor.h"
-#include "
ardour/note.h
"
+#include "
evoral/Note.hpp
"
using namespace ARDOUR;
using namespace ARDOUR;
@@
-12,52
+12,53
@@
bool
CanvasNote::on_event(GdkEvent* ev)
{
double event_x;
CanvasNote::on_event(GdkEvent* ev)
{
double event_x;
- static double middle_point,
pressed_x,
last_x;
+ static double middle_point, last_x;
Gdk::Cursor cursor;
static NoteEnd note_end;
Gdk::Cursor cursor;
static NoteEnd note_end;
+ Editing::MidiEditMode edit_mode = _region.get_trackview().editor().current_midi_edit_mode();
- switch(ev->type) {
+ switch
(ev->type) {
case GDK_BUTTON_PRESS:
case GDK_BUTTON_PRESS:
- if (ev->button.button == 2) {
+ if (ev->button.button == 2 ||
+ (ev->button.button == 1 &&
+ edit_mode == Editing::MidiEditResize)) {
+ double region_start = _region.get_position_pixels();
event_x = ev->button.x;
event_x = ev->button.x;
- middle_point = x1() + (x2() - x1()) / 2.0L;
+ middle_point =
region_start +
x1() + (x2() - x1()) / 2.0L;
- if(event_x <= middle_point) {
+ if
(event_x <= middle_point) {
cursor = Gdk::Cursor(Gdk::LEFT_SIDE);
cursor = Gdk::Cursor(Gdk::LEFT_SIDE);
- last_x = x1();
note_end = NOTE_ON;
} else {
cursor = Gdk::Cursor(Gdk::RIGHT_SIDE);
note_end = NOTE_ON;
} else {
cursor = Gdk::Cursor(Gdk::RIGHT_SIDE);
- last_x = x2();
note_end = NOTE_OFF;
}
_item->grab(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK, cursor, ev->motion.time);
if (_region.mouse_state() == MidiRegionView::SelectTouchDragging) {
note_end = NOTE_OFF;
}
_item->grab(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK, cursor, ev->motion.time);
if (_region.mouse_state() == MidiRegionView::SelectTouchDragging) {
- _
mouse2
_state = AbsoluteResize;
+ _
note
_state = AbsoluteResize;
} else {
} else {
- _
mouse2
_state = RelativeResize;
+ _
note
_state = RelativeResize;
}
}
- pressed_x = event_x;
-
_region.note_selected(this, true);
_region.begin_resizing(note_end);
_region.note_selected(this, true);
_region.begin_resizing(note_end);
+ last_x = event_x;
return true;
return true;
- }
-
+ }
+
case GDK_MOTION_NOTIFY:
event_x = ev->motion.x;
case GDK_MOTION_NOTIFY:
event_x = ev->motion.x;
- if (_
mouse2
_state == RelativeResize) {
+ if (_
note
_state == RelativeResize) {
_region.update_resizing(note_end, event_x - last_x, true);
last_x = event_x;
return true;
}
_region.update_resizing(note_end, event_x - last_x, true);
last_x = event_x;
return true;
}
- if (_
mouse2
_state == AbsoluteResize) {
+ if (_
note
_state == AbsoluteResize) {
_region.update_resizing(note_end, event_x, false);
return true;
}
_region.update_resizing(note_end, event_x, false);
return true;
}
@@
-65,25
+66,25
@@
CanvasNote::on_event(GdkEvent* ev)
case GDK_BUTTON_RELEASE:
event_x = ev->button.x;
case GDK_BUTTON_RELEASE:
event_x = ev->button.x;
- switch (_
mouse2
_state) {
+ switch (_
note
_state) {
case RelativeResize: // Clicked
_item->ungrab(ev->button.time);
_region.commit_resizing(note_end, event_x, true);
case RelativeResize: // Clicked
_item->ungrab(ev->button.time);
_region.commit_resizing(note_end, event_x, true);
- _
mouse2
_state = None;
+ _
note
_state = None;
return true;
case AbsoluteResize: // Clicked
_item->ungrab(ev->button.time);
_region.commit_resizing(note_end, event_x, false);
return true;
case AbsoluteResize: // Clicked
_item->ungrab(ev->button.time);
_region.commit_resizing(note_end, event_x, false);
- _
mouse2
_state = None;
+ _
note
_state = None;
return true;
default:
return true;
default:
- return Canvas
Midi
Event::on_event(ev);
+ return Canvas
Note
Event::on_event(ev);
}
default:
}
default:
- return Canvas
Midi
Event::on_event(ev);
+ return Canvas
Note
Event::on_event(ev);
}
}
}
}