diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-09-13 12:38:16 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-09-13 12:59:34 +0300 |
commit | 49c36d34307ae510426455f834973b53f7d1db35 (patch) | |
tree | 3eab2dea5537736578c0af5a69f091254b24d58d /source/blender/editors/space_clip | |
parent | 11b776d2156c330840512108de4171f314c6325e (diff) |
Tracking: Move Lock Selection to an own operator
There are no functional changes as far as users are concerned,
just allows to mark operator as safe to be run from a locked
interface.
Diffstat (limited to 'source/blender/editors/space_clip')
-rw-r--r-- | source/blender/editors/space_clip/clip_intern.h | 2 | ||||
-rw-r--r-- | source/blender/editors/space_clip/clip_ops.c | 25 | ||||
-rw-r--r-- | source/blender/editors/space_clip/space_clip.c | 1 |
3 files changed, 28 insertions, 0 deletions
diff --git a/source/blender/editors/space_clip/clip_intern.h b/source/blender/editors/space_clip/clip_intern.h index 8599de9f16f..1fae4c91a48 100644 --- a/source/blender/editors/space_clip/clip_intern.h +++ b/source/blender/editors/space_clip/clip_intern.h @@ -108,6 +108,8 @@ void CLIP_OT_set_scene_frames(wmOperatorType *ot); void CLIP_OT_cursor_set(struct wmOperatorType *ot); +void CLIP_OT_lock_selection_toggle(struct wmOperatorType *ot); + /* clip_toolbar.c */ struct ARegion *ED_clip_has_properties_region(struct ScrArea *sa); diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c index 31845036eab..bc1026180a3 100644 --- a/source/blender/editors/space_clip/clip_ops.c +++ b/source/blender/editors/space_clip/clip_ops.c @@ -1748,6 +1748,31 @@ void CLIP_OT_cursor_set(wmOperatorType *ot) 10.0f); } +/********************** Toggle lock to selection operator *********************/ + +static int lock_selection_togglee_exec(bContext *C, wmOperator *UNUSED(op)) +{ + SpaceClip *space_clip = CTX_wm_space_clip(C); + space_clip->flag ^= SC_LOCK_SELECTION; + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_CLIP, NULL); + return OPERATOR_FINISHED; +} + +void CLIP_OT_lock_selection_toggle(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Toggle Lock Selection"; + ot->description = "Toggle Lock Selection option of the current clip editor"; + ot->idname = "CLIP_OT_lock_selection_toggle"; + + /* api callbacks */ + ot->poll = ED_space_clip_poll; + ot->exec = lock_selection_togglee_exec; + + /* flags */ + ot->flag = OPTYPE_LOCK_BYPASS; +} + /********************** macros *********************/ void ED_operatormacros_clip(void) diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c index c1cb975447f..2964a95648a 100644 --- a/source/blender/editors/space_clip/space_clip.c +++ b/source/blender/editors/space_clip/space_clip.c @@ -452,6 +452,7 @@ static void clip_operatortypes(void) WM_operatortype_append(CLIP_OT_prefetch); WM_operatortype_append(CLIP_OT_set_scene_frames); WM_operatortype_append(CLIP_OT_cursor_set); + WM_operatortype_append(CLIP_OT_lock_selection_toggle); /* ** tracking_ops.c ** */ |