diff options
author | Pablo Vazquez <pablo@blender.org> | 2021-09-03 17:39:01 +0300 |
---|---|---|
committer | Pablo Vazquez <pablo@blender.org> | 2021-09-03 17:39:01 +0300 |
commit | 18a3b9b238c40d84d350c54e73e7e89e2f30bc3b (patch) | |
tree | 569dac7d4549a901427f74db57c8c0f55a0c04a5 /source/blender/editors/screen | |
parent | 870404455bb74ef0c1eb9bdd504be919d95f54c7 (diff) | |
parent | ac97893dfc77fd77e0254a0a4692820c7dbc6967 (diff) |
Merge branch 'master' into temp-ui-tweaks
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r-- | source/blender/editors/screen/screen_context.c | 49 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 2 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 26 | ||||
-rw-r--r-- | source/blender/editors/screen/workspace_layout_edit.c | 2 |
4 files changed, 58 insertions, 21 deletions
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c index b0181de96a0..2ccefb993c7 100644 --- a/source/blender/editors/screen/screen_context.c +++ b/source/blender/editors/screen/screen_context.c @@ -56,6 +56,7 @@ #include "ED_armature.h" #include "ED_gpencil.h" +#include "SEQ_select.h" #include "SEQ_sequencer.h" #include "UI_interface.h" @@ -91,10 +92,13 @@ const char *screen_context_dir[] = { "image_paint_object", "particle_edit_object", "pose_object", + "active_sequence_strip", "sequences", "selected_sequences", "selected_editable_sequences", /* sequencer */ - "selected_nla_strips", /* nla editor */ + "active_nla_track", + "active_nla_strip", + "selected_nla_strips", /* nla editor */ "gpencil_data", "gpencil_data_owner", /* grease pencil data */ "annotation_data", @@ -603,11 +607,23 @@ static eContextResult screen_ctx_pose_object(const bContext *C, bContextDataResu } return CTX_RESULT_OK; } +static eContextResult screen_ctx_active_sequence_strip(const bContext *C, + bContextDataResult *result) +{ + wmWindow *win = CTX_wm_window(C); + Scene *scene = WM_window_get_active_scene(win); + Sequence *seq = SEQ_select_active_get(scene); + if (seq) { + CTX_data_pointer_set(result, &scene->id, &RNA_Sequence, seq); + return CTX_RESULT_OK; + } + return CTX_RESULT_NO_DATA; +} static eContextResult screen_ctx_sequences(const bContext *C, bContextDataResult *result) { wmWindow *win = CTX_wm_window(C); Scene *scene = WM_window_get_active_scene(win); - Editing *ed = SEQ_editing_get(scene, false); + Editing *ed = SEQ_editing_get(scene); if (ed) { LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) { CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq); @@ -621,7 +637,7 @@ static eContextResult screen_ctx_selected_sequences(const bContext *C, bContextD { wmWindow *win = CTX_wm_window(C); Scene *scene = WM_window_get_active_scene(win); - Editing *ed = SEQ_editing_get(scene, false); + Editing *ed = SEQ_editing_get(scene); if (ed) { LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) { if (seq->flag & SELECT) { @@ -638,7 +654,7 @@ static eContextResult screen_ctx_selected_editable_sequences(const bContext *C, { wmWindow *win = CTX_wm_window(C); Scene *scene = WM_window_get_active_scene(win); - Editing *ed = SEQ_editing_get(scene, false); + Editing *ed = SEQ_editing_get(scene); if (ed) { LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) { if (seq->flag & SELECT && !(seq->flag & SEQ_LOCK)) { @@ -650,6 +666,24 @@ static eContextResult screen_ctx_selected_editable_sequences(const bContext *C, } return CTX_RESULT_NO_DATA; } +static eContextResult screen_ctx_active_nla_track(const bContext *C, bContextDataResult *result) +{ + PointerRNA ptr; + if (ANIM_nla_context_track_ptr(C, &ptr)) { + CTX_data_pointer_set_ptr(result, &ptr); + return CTX_RESULT_OK; + } + return CTX_RESULT_NO_DATA; +} +static eContextResult screen_ctx_active_nla_strip(const bContext *C, bContextDataResult *result) +{ + PointerRNA ptr; + if (ANIM_nla_context_strip_ptr(C, &ptr)) { + CTX_data_pointer_set_ptr(result, &ptr); + return CTX_RESULT_OK; + } + return CTX_RESULT_NO_DATA; +} static eContextResult screen_ctx_selected_nla_strips(const bContext *C, bContextDataResult *result) { bAnimContext ac; @@ -707,7 +741,7 @@ static eContextResult screen_ctx_gpencil_data_owner(const bContext *C, bContextD bGPdata **gpd_ptr = ED_gpencil_data_get_pointers_direct(area, obact, &ptr); if (gpd_ptr) { - CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data); + CTX_data_pointer_set_ptr(result, &ptr); return CTX_RESULT_OK; } return CTX_RESULT_NO_DATA; @@ -739,7 +773,7 @@ static eContextResult screen_ctx_annotation_data_owner(const bContext *C, bGPdata **gpd_ptr = ED_annotation_data_get_pointers_direct((ID *)screen, area, scene, &ptr); if (gpd_ptr) { - CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data); + CTX_data_pointer_set_ptr(result, &ptr); return CTX_RESULT_OK; } return CTX_RESULT_NO_DATA; @@ -1097,9 +1131,12 @@ static void ensure_ed_screen_context_functions(void) register_context_function("image_paint_object", screen_ctx_image_paint_object); register_context_function("particle_edit_object", screen_ctx_particle_edit_object); register_context_function("pose_object", screen_ctx_pose_object); + register_context_function("active_sequence_strip", screen_ctx_active_sequence_strip); register_context_function("sequences", screen_ctx_sequences); register_context_function("selected_sequences", screen_ctx_selected_sequences); register_context_function("selected_editable_sequences", screen_ctx_selected_editable_sequences); + register_context_function("active_nla_track", screen_ctx_active_nla_track); + register_context_function("active_nla_strip", screen_ctx_active_nla_strip); register_context_function("selected_nla_strips", screen_ctx_selected_nla_strips); register_context_function("gpencil_data", screen_ctx_gpencil_data); register_context_function("gpencil_data_owner", screen_ctx_gpencil_data_owner); diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 506b5a9859d..1c068fdd6e4 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -230,7 +230,7 @@ bScreen *screen_add(Main *bmain, const char *name, const rcti *rect) void screen_data_copy(bScreen *to, bScreen *from) { /* free contents of 'to', is from blenkernel screen.c */ - BKE_screen_free(to); + BKE_screen_free_data(to); to->flag = from->flag; diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index cff3ecfbbd3..daac196a90c 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -1738,19 +1738,19 @@ static int area_snap_calc_location(const bScreen *screen, int snap_dist_best = INT_MAX; { const float div_array[] = { - /* Middle. */ - 1.0f / 2.0f, - /* Thirds. */ - 1.0f / 3.0f, - 2.0f / 3.0f, - /* Quarters. */ - 1.0f / 4.0f, - 3.0f / 4.0f, - /* Eighth. */ - 1.0f / 8.0f, - 3.0f / 8.0f, - 5.0f / 8.0f, - 7.0f / 8.0f, + 0.0f, + 1.0f / 12.0f, + 2.0f / 12.0f, + 3.0f / 12.0f, + 4.0f / 12.0f, + 5.0f / 12.0f, + 6.0f / 12.0f, + 7.0f / 12.0f, + 8.0f / 12.0f, + 9.0f / 12.0f, + 10.0f / 12.0f, + 11.0f / 12.0f, + 1.0f, }; /* Test the snap to the best division. */ for (int i = 0; i < ARRAY_SIZE(div_array); i++) { diff --git a/source/blender/editors/screen/workspace_layout_edit.c b/source/blender/editors/screen/workspace_layout_edit.c index 31ca11bb847..0ec32da0404 100644 --- a/source/blender/editors/screen/workspace_layout_edit.c +++ b/source/blender/editors/screen/workspace_layout_edit.c @@ -140,7 +140,7 @@ bool ED_workspace_layout_delete(WorkSpace *workspace, WorkSpaceLayout *layout_ol BLI_assert(BLI_findindex(&workspace->layouts, layout_old) != -1); - /* don't allow deleting temp fullscreens for now */ + /* Don't allow deleting temp full-screens for now. */ if (BKE_screen_is_fullscreen_area(screen_old)) { return false; } |