mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 14:54:56 +01:00
Make Cut mode respect snap modifer
This commit is contained in:
parent
d4190d3761
commit
73f3e479d3
4 changed files with 17 additions and 10 deletions
|
|
@ -536,7 +536,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||||
|
|
||||||
/* editing operations that need to be public */
|
/* editing operations that need to be public */
|
||||||
void mouse_add_new_marker (framepos_t where, bool is_cd=false);
|
void mouse_add_new_marker (framepos_t where, bool is_cd=false);
|
||||||
void split_regions_at (framepos_t, RegionSelection&, const int32_t sub_num);
|
void split_regions_at (framepos_t, RegionSelection&, const int32_t sub_num, bool snap = true);
|
||||||
void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
|
void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
|
||||||
RegionSelection get_regions_from_selection_and_mouse (framepos_t);
|
RegionSelection get_regions_from_selection_and_mouse (framepos_t);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6534,12 +6534,12 @@ RegionCutDrag::start_grab (GdkEvent* event, Gdk::Cursor* c)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
RegionCutDrag::motion (GdkEvent*, bool)
|
RegionCutDrag::motion (GdkEvent* event, bool)
|
||||||
{
|
{
|
||||||
framepos_t where = _drags->current_pointer_frame();
|
framepos_t pos = _drags->current_pointer_frame();
|
||||||
_editor->snap_to (where);
|
_editor->snap_to_with_modifier (pos, event);
|
||||||
|
|
||||||
line->set_position (where);
|
line->set_position (pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -6548,6 +6548,7 @@ RegionCutDrag::finished (GdkEvent* event, bool)
|
||||||
_editor->get_track_canvas()->canvas()->re_enter();
|
_editor->get_track_canvas()->canvas()->re_enter();
|
||||||
|
|
||||||
framepos_t pos = _drags->current_pointer_frame();
|
framepos_t pos = _drags->current_pointer_frame();
|
||||||
|
_editor->snap_to_with_modifier (pos, event);
|
||||||
|
|
||||||
line->hide ();
|
line->hide ();
|
||||||
|
|
||||||
|
|
@ -6557,7 +6558,8 @@ RegionCutDrag::finished (GdkEvent* event, bool)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_editor->split_regions_at (pos, rs, _editor->get_grid_music_divisions (event->button.state));
|
_editor->split_regions_at (pos, rs, _editor->get_grid_music_divisions (event->button.state),
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,8 @@ Editor::redo (uint32_t n)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::split_regions_at (framepos_t where, RegionSelection& regions, const int32_t sub_num)
|
Editor::split_regions_at (framepos_t where, RegionSelection& regions, const int32_t sub_num,
|
||||||
|
bool snap_frame)
|
||||||
{
|
{
|
||||||
bool frozen = false;
|
bool frozen = false;
|
||||||
|
|
||||||
|
|
@ -192,10 +193,14 @@ Editor::split_regions_at (framepos_t where, RegionSelection& regions, const int3
|
||||||
case SnapToRegionEnd:
|
case SnapToRegionEnd:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
snap_to (where);
|
if (snap_frame) {
|
||||||
|
snap_to (where);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
snap_to (where);
|
if (snap_frame) {
|
||||||
|
snap_to (where);
|
||||||
|
}
|
||||||
|
|
||||||
frozen = true;
|
frozen = true;
|
||||||
EditorFreeze(); /* Emit Signal */
|
EditorFreeze(); /* Emit Signal */
|
||||||
|
|
|
||||||
|
|
@ -289,7 +289,7 @@ class PublicEditor : public Gtkmm2ext::Tabbable {
|
||||||
virtual void restore_editing_space () = 0;
|
virtual void restore_editing_space () = 0;
|
||||||
virtual framepos_t get_preferred_edit_position (Editing::EditIgnoreOption = Editing::EDIT_IGNORE_NONE, bool from_context_menu = false, bool from_outside_canvas = false) = 0;
|
virtual framepos_t get_preferred_edit_position (Editing::EditIgnoreOption = Editing::EDIT_IGNORE_NONE, bool from_context_menu = false, bool from_outside_canvas = false) = 0;
|
||||||
virtual void toggle_meter_updating() = 0;
|
virtual void toggle_meter_updating() = 0;
|
||||||
virtual void split_regions_at (framepos_t, RegionSelection&, const int32_t sub_num) = 0;
|
virtual void split_regions_at (framepos_t, RegionSelection&, const int32_t sub_num, bool snap) = 0;
|
||||||
virtual void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false) = 0;
|
virtual void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false) = 0;
|
||||||
virtual void mouse_add_new_marker (framepos_t where, bool is_cd=false) = 0;
|
virtual void mouse_add_new_marker (framepos_t where, bool is_cd=false) = 0;
|
||||||
virtual void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>) = 0;
|
virtual void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>) = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue