Merge branch 'blender-v3.3-release'
This commit is contained in:
commit
35b0a2f5e7
|
@ -1451,7 +1451,12 @@ static int vieworbit_exec(bContext *C, wmOperator *op)
|
|||
ED_view3d_smooth_view_force_finish(C, v3d, region);
|
||||
|
||||
if ((RV3D_LOCK_FLAGS(rv3d) & RV3D_LOCK_ROTATION) == 0 || (view_opposite != RV3D_VIEW_USER)) {
|
||||
if ((rv3d->persp != RV3D_CAMOB) || ED_view3d_camera_lock_check(v3d, rv3d)) {
|
||||
const bool is_camera_lock = ED_view3d_camera_lock_check(v3d, rv3d);
|
||||
if ((rv3d->persp != RV3D_CAMOB) || is_camera_lock) {
|
||||
if (is_camera_lock) {
|
||||
const Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
|
||||
ED_view3d_camera_lock_init(depsgraph, v3d, rv3d);
|
||||
}
|
||||
int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
|
||||
float quat_mul[4];
|
||||
float quat_new[4];
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
#include "RNA_access.h"
|
||||
#include "RNA_define.h"
|
||||
|
||||
#include "DEG_depsgraph_query.h"
|
||||
|
||||
#include "ED_screen.h"
|
||||
|
||||
#include "view3d_intern.h"
|
||||
|
@ -167,7 +169,13 @@ static int viewroll_exec(bContext *C, wmOperator *op)
|
|||
}
|
||||
|
||||
rv3d = region->regiondata;
|
||||
if ((rv3d->persp != RV3D_CAMOB) || ED_view3d_camera_lock_check(v3d, rv3d)) {
|
||||
|
||||
const bool is_camera_lock = ED_view3d_camera_lock_check(v3d, rv3d);
|
||||
if ((rv3d->persp != RV3D_CAMOB) || is_camera_lock) {
|
||||
if (is_camera_lock) {
|
||||
const Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
|
||||
ED_view3d_camera_lock_init(depsgraph, v3d, rv3d);
|
||||
}
|
||||
|
||||
ED_view3d_smooth_view_force_finish(C, v3d, region);
|
||||
|
||||
|
|
|
@ -159,11 +159,15 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
|
|||
/* clamp after because we may have been zooming out */
|
||||
CLAMP(new_dist, dist_range[0], dist_range[1]);
|
||||
|
||||
/* TODO(campbell): 'is_camera_lock' not currently working well. */
|
||||
const bool is_camera_lock = ED_view3d_camera_lock_check(v3d, rv3d);
|
||||
if ((rv3d->persp == RV3D_CAMOB) && (is_camera_lock == false)) {
|
||||
if (rv3d->persp == RV3D_CAMOB) {
|
||||
Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
|
||||
ED_view3d_persp_switch_from_camera(depsgraph, v3d, rv3d, RV3D_PERSP);
|
||||
if (is_camera_lock) {
|
||||
ED_view3d_camera_lock_init(depsgraph, v3d, rv3d);
|
||||
}
|
||||
else {
|
||||
ED_view3d_persp_switch_from_camera(depsgraph, v3d, rv3d, RV3D_PERSP);
|
||||
}
|
||||
}
|
||||
|
||||
ED_view3d_smooth_view(C,
|
||||
|
|
Loading…
Reference in New Issue