Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2015-07-18 12:55:08 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2015-07-18 12:55:08 +0300
commitdf4d25991effad358c571214466a35723d50f23e (patch)
tree0197b2a0eb3e81f1d965428005e40e1f0d04402a /source/blender/editors/space_sequencer/sequencer_select.c
parentbbed6af857ed7a688b1443396dceb7c0a2d573c5 (diff)
Fix (IRC reported) inverted behavior of select more/less in VSE.
Also, cleaned up a bit that code, and added releavnt entries in Select menu. Reported on IRC by Leon Cheung, thanks!
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_select.c')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_select.c36
1 files changed, 25 insertions, 11 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index 2100c97079e..67d76054538 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -584,21 +584,35 @@ static bool select_more_less_seq__internal(Scene *scene, bool sel, const bool li
}
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
- if ((int)(seq->flag & SELECT) == sel) {
- if ((linked == 0 && seq->tmp) == 0) {
- /* only get unselected nabours */
+ if ((seq->flag & SELECT) == sel) {
+ if (linked || (seq->tmp == NULL)) {
+ /* only get unselected neighbors */
neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_LEFT, isel);
if (neighbor) {
- if (sel) { neighbor->flag |= SELECT; recurs_sel_seq(neighbor); }
- else neighbor->flag &= ~SELECT;
- if (linked == 0) neighbor->tmp = (Sequence *)1;
+ if (sel) {
+ neighbor->flag |= SELECT;
+ recurs_sel_seq(neighbor);
+ }
+ else {
+ neighbor->flag &= ~SELECT;
+ }
+ if (!linked) {
+ neighbor->tmp = (Sequence *)1;
+ }
changed = true;
}
neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_RIGHT, isel);
if (neighbor) {
- if (sel) { neighbor->flag |= SELECT; recurs_sel_seq(neighbor); }
- else neighbor->flag &= ~SELECT;
- if (linked == 0) neighbor->tmp = (void *)1;
+ if (sel) {
+ neighbor->flag |= SELECT;
+ recurs_sel_seq(neighbor);
+ }
+ else {
+ neighbor->flag &= ~SELECT;
+ }
+ if (!linked) {
+ neighbor->tmp = (Sequence *)1;
+ }
changed = true;
}
}
@@ -615,7 +629,7 @@ static int sequencer_select_more_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene = CTX_data_scene(C);
- if (!select_more_less_seq__internal(scene, 0, 0))
+ if (!select_more_less_seq__internal(scene, true, false))
return OPERATOR_CANCELLED;
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene);
@@ -646,7 +660,7 @@ static int sequencer_select_less_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene = CTX_data_scene(C);
- if (!select_more_less_seq__internal(scene, 1, 0))
+ if (!select_more_less_seq__internal(scene, false, false))
return OPERATOR_CANCELLED;
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene);