diff options
Diffstat (limited to 'source/blender/editors')
7 files changed, 32 insertions, 8 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 079b64f852c..f1c0df23fc9 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -2911,7 +2911,7 @@ static uiBut *ui_but_list_row_text_activate(bContext *C, uiBut *but, uiHandleBut ARegion *ar = CTX_wm_region(C); uiBut *labelbut = ui_but_find_mouse_over_ex(ar, event->x, event->y, true); - if (labelbut && labelbut->type == TEX) { + if (labelbut && labelbut->type == TEX && !(labelbut->flag & UI_BUT_DISABLED)) { /* exit listrow */ data->cancel = true; button_activate_exit(C, but, data, false, false); diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 3d7492c9753..7d0fc858180 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1901,6 +1901,9 @@ static void uiBlockPicker(uiBlock *block, float rgba[4], PointerRNA *ptr, Proper case USER_CP_SQUARE_HV: square_picker(block, ptr, prop, UI_GRAD_HV); break; + default: + circle_picker(block, ptr, prop); + break; } /* mode */ diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index dcfb2e5cfbc..d04a67baa50 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2254,6 +2254,11 @@ void uiTemplateColorPicker(uiLayout *layout, PointerRNA *ptr, const char *propna but = uiDefButR_prop(block, HSVCUBE, 0, "", 0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, prop, -1, 0.0, 0.0, UI_GRAD_HV, 0, ""); break; + default: + but = uiDefButR_prop(block, HSVCIRCLE, 0, "", 0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, prop, + -1, 0.0, 0.0, 0, 0, ""); + break; + } if (lock) { @@ -2293,6 +2298,11 @@ void uiTemplateColorPicker(uiLayout *layout, PointerRNA *ptr, const char *propna uiDefButR_prop(block, HSVCUBE, 0, "", 0, 4, WHEEL_SIZE, 18, ptr, prop, -1, softmin, softmax, UI_GRAD_HV + 3, 0, ""); break; + default: + uiItemS(row); + uiDefButR_prop(block, HSVCUBE, 0, "", WHEEL_SIZE + 6, 0, 14, WHEEL_SIZE, ptr, prop, + -1, softmin, softmax, UI_GRAD_V_ALT, 0, ""); + break; } } } diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index 35f17ec22af..eae15e7766d 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -131,7 +131,12 @@ static void image_buffer_rect_update(RenderJob *rj, RenderResult *rr, ImBuf *ibu ColorManagedViewSettings *view_settings; ColorManagedDisplaySettings *display_settings; - if (ibuf->userflags & IB_DISPLAY_BUFFER_INVALID) { + /* Exception for exr tiles -- display buffer conversion happens here, + * NOT in the color management pipeline. + */ + if (ibuf->userflags & IB_DISPLAY_BUFFER_INVALID && + rr->do_exr_tile == false) + { /* The whole image buffer it so be color managed again anyway. */ return; } diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 0a37496c88a..1464d39ff23 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1,5 +1,5 @@ /* - * ***** BEGIN GPL LICENSE BLOCK ***** + * ***** begin GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -1901,6 +1901,8 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) while (seq) { if ((seq->flag & SELECT) && (seq->type == SEQ_TYPE_IMAGE) && (seq->len > 1)) { + Sequence *seq_next; + /* remove seq so overlap tests don't conflict, * see seq_free_sequence below for the real free'ing */ BLI_remlink(ed->seqbasep, seq); @@ -1944,8 +1946,9 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) start_ofs += step; } + seq_next = seq->next; BKE_sequence_free(scene, seq); - seq = seq->next; + seq = seq_next; } else { seq = seq->next; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 55950579637..ea81bb2b857 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -1049,6 +1049,7 @@ static int viewrotate_modal(bContext *C, wmOperator *op, const wmEvent *event) static void view3d_ensure_persp(struct View3D *v3d, ARegion *ar) { RegionView3D *rv3d = ar->regiondata; + const bool autopersp = (U.uiflag & USER_AUTOPERSP) != 0; BLI_assert((rv3d->viewlock & RV3D_LOCKED) == 0); @@ -1057,9 +1058,11 @@ static void view3d_ensure_persp(struct View3D *v3d, ARegion *ar) if (rv3d->persp != RV3D_PERSP) { if (rv3d->persp == RV3D_CAMOB) { - view3d_persp_switch_from_camera(v3d, rv3d, rv3d->lpersp); + /* If autopersp and previous view was an axis one, switch back to PERSP mode, else reuse previous mode. */ + char persp = (autopersp && RV3D_VIEW_IS_AXIS(rv3d->lview)) ? RV3D_PERSP : rv3d->lpersp; + view3d_persp_switch_from_camera(v3d, rv3d, persp); } - else if ((U.uiflag & USER_AUTOPERSP) && RV3D_VIEW_IS_AXIS(rv3d->view)) { + else if (autopersp && RV3D_VIEW_IS_AXIS(rv3d->view)) { rv3d->persp = RV3D_PERSP; } } diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 8dc0c6ddaa8..bb0a74f1e09 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -6588,7 +6588,7 @@ static void MaskPointToTransData(Scene *scene, MaskSplinePoint *point, td->flag = 0; td->loc = td2d->loc; - copy_v3_v3(td->center, bezt->vec[1]); + mul_v2_m3v2(td->center, parent_matrix, bezt->vec[1]); copy_v3_v3(td->iloc, td->loc); memset(td->axismtx, 0, sizeof(td->axismtx)); @@ -6636,7 +6636,7 @@ static void MaskPointToTransData(Scene *scene, MaskSplinePoint *point, td->flag = 0; td->loc = td2d->loc; - copy_v3_v3(td->center, bezt->vec[1]); + mul_v2_m3v2(td->center, parent_matrix, bezt->vec[1]); copy_v3_v3(td->iloc, td->loc); memset(td->axismtx, 0, sizeof(td->axismtx)); |