summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-12-30 01:50:34 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-12-30 01:50:34 +0000
commit976e16340615caa446bf2d1987ced37118e249b3 (patch)
treebaaec87bfbff1c7219deb6879557cc965896ba03 /gtk2_ardour
parent21d4eb56d4ac09dca2f33f69f10d985b13a6b55c (diff)
make insert-patch-change from context menu use context click event for position (fixes #4570)
git-svn-id: svn://localhost/ardour2/branches/3.0@11113 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour.menus.in2
-rw-r--r--gtk2_ardour/editor.h2
-rw-r--r--gtk2_ardour/editor_actions.cc3
-rw-r--r--gtk2_ardour/editor_ops.cc10
4 files changed, 12 insertions, 5 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in
index b6c28db920..faa3e6ac06 100644
--- a/gtk2_ardour/ardour.menus.in
+++ b/gtk2_ardour/ardour.menus.in
@@ -615,7 +615,7 @@
<menuitem action='lower-region-to-bottom'/>
</menu>
<menu action='RegionMenuMIDI'>
- <menuitem action='insert-patch-change'/>
+ <menuitem action='insert-patch-change-context'/>
<menuitem action='quantize-region'/>
<menuitem action='fork-region'/>
<menuitem action='show-region-list-editor'/>
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 2b03e210a9..28701ef559 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -1146,7 +1146,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void reset_region_scale_amplitude ();
void adjust_region_gain (bool up);
void quantize_region ();
- void insert_patch_change ();
+ void insert_patch_change (bool from_context);
void fork_region ();
void do_insert_time ();
diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc
index efb78c48ce..7297f3f897 100644
--- a/gtk2_ardour/editor_actions.cc
+++ b/gtk2_ardour/editor_actions.cc
@@ -1402,7 +1402,8 @@ Editor::register_region_actions ()
);
reg_sens (_region_actions, "quantize-region", _("Quantize..."), sigc::mem_fun (*this, &Editor::quantize_region));
- reg_sens (_region_actions, "insert-patch-change", _("Insert Patch Change..."), sigc::mem_fun (*this, &Editor::insert_patch_change));
+ reg_sens (_region_actions, "insert-patch-change", _("Insert Patch Change..."), sigc::bind (sigc::mem_fun (*this, &Editor::insert_patch_change), false));
+ reg_sens (_region_actions, "insert-patch-change-context", _("Insert Patch Change..."), sigc::bind (sigc::mem_fun (*this, &Editor::insert_patch_change), true));
reg_sens (_region_actions, "fork-region", _("Fork"), sigc::mem_fun (*this, &Editor::fork_region));
reg_sens (_region_actions, "strip-region-silence", _("Strip Silence..."), sigc::mem_fun (*this, &Editor::strip_region_silence));
reg_sens (_region_actions, "set-selection-from-region", _("Set Range Selection"), sigc::mem_fun (*this, &Editor::set_selection_from_region));
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index d387f7c0eb..39f6fa2b88 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -4555,14 +4555,20 @@ Editor::quantize_region ()
}
void
-Editor::insert_patch_change ()
+Editor::insert_patch_change (bool from_context)
{
RegionSelection rs = get_regions_from_selection_and_entered ();
if (rs.empty ()) {
return;
}
- framepos_t const p = get_preferred_edit_position (false);
+ framepos_t p;
+
+ if (!from_context) {
+ p = get_preferred_edit_position (false);
+ } else {
+ p = event_frame (&context_click_event, 0, 0);
+ }
Evoral::PatchChange<Evoral::MusicalTime> empty (0, 0, 0, 0);
PatchChangeDialog d (0, _session, empty, Gtk::Stock::ADD);