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:
authorPablo Vazquez <pablo@blender.org>2021-09-03 17:39:01 +0300
committerPablo Vazquez <pablo@blender.org>2021-09-03 17:39:01 +0300
commit18a3b9b238c40d84d350c54e73e7e89e2f30bc3b (patch)
tree569dac7d4549a901427f74db57c8c0f55a0c04a5 /source/blender/editors/screen
parent870404455bb74ef0c1eb9bdd504be919d95f54c7 (diff)
parentac97893dfc77fd77e0254a0a4692820c7dbc6967 (diff)
Merge branch 'master' into temp-ui-tweaks
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r--source/blender/editors/screen/screen_context.c49
-rw-r--r--source/blender/editors/screen/screen_edit.c2
-rw-r--r--source/blender/editors/screen/screen_ops.c26
-rw-r--r--source/blender/editors/screen/workspace_layout_edit.c2
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;
}