Zoom session when the mouse pointer is moved up and down during a playhead drag.
[ardour2.git] / doc / region_ops.txt
blob69851bf3ebdc5494126cf230e9b714c01d0d526c
1 How to choose what regions to perform operations on
2 ---------------------------------------------------
4 Divide region actions into 3 groups:
6 1. Actions that operate on the selection, and for which the edit point type and location is irrelevant.
7 e.g. remove-region, rename-region, boost-region-gain
9 2. Actions that are not related to the selection, but for which the edit point location is important
10 e.g. insert-region-from-region-list
12 3. Actions that operate on the selection, and for which the edit point location is important
13 e.g. set-region-sync-position, place-transient
16 For group 1, Editor::get_regions_from_selection_and_entered() is used to decide which regions to operate
17 on.  This method returns the selected regions, unless there are none, in which case it returns the last
18 region that the mouse entered.
20 For group 3, Editor::get_regions_from_selection_and_edit_point() is used to decide which regions to operate
21 on.
23 If the edit point is `mouse':
24      if the mouse is over a selected region, or no region, this method returns all selected regions.
25      if the mouse is over an unselected region, just that region is returned.
27 For other edit points the method returns the selected regions AND those that are both under the edit position
28 AND on a selected track, or on a track which is in the same active edit-enabled route group as a selected
29 region.
31 The action handlers call the appropriate method to decide which regions to operate on.
33 In addition, Editor::sensitize_the_right_region_actions() is called when a Region menu is about to be displayed,
34 and it sensitizes the actions that are appropriate given the current situation.  When selecting things from
35 a menu, group 3 operations are disabled if the edit point is `mouse', as the mouse will be positioned over
36 the menu and its position is hence meaningless.