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:
authorCampbell Barton <ideasman42@gmail.com>2019-01-17 06:48:46 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-01-17 06:48:46 +0300
commitb6854770c7e7ce63394ce46a4f6cfaa978a6c657 (patch)
treedb76105ddbe14fdbbb445cb5035ba461ce2c068c /source/blender/editors/space_view3d
parent9d8445d6a9eab25b554bcc1ffc51b272abe373b8 (diff)
T60560: Render border gizmo doesn't update display
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r--source/blender/editors/space_view3d/view3d_gizmo_camera.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/view3d_gizmo_camera.c b/source/blender/editors/space_view3d/view3d_gizmo_camera.c
index 6d6f3700c29..58a005560ce 100644
--- a/source/blender/editors/space_view3d/view3d_gizmo_camera.c
+++ b/source/blender/editors/space_view3d/view3d_gizmo_camera.c
@@ -47,6 +47,8 @@
#include "WM_types.h"
#include "WM_message.h"
+#include "DEG_depsgraph.h"
+
#include "view3d_intern.h" /* own include */
@@ -312,6 +314,9 @@ void VIEW3D_GGT_camera(wmGizmoGroupType *gzgt)
* \{ */
struct CameraViewWidgetGroup {
+ Scene *scene;
+ bool is_camera;
+
wmGizmo *border;
struct {
@@ -349,6 +354,10 @@ static void gizmo_render_border_prop_matrix_set(
BLI_rctf_resize(border, len_v3(matrix[0]), len_v3(matrix[1]));
BLI_rctf_recenter(border, matrix[3][0], matrix[3][1]);
BLI_rctf_isect(&(rctf){ .xmin = 0, .ymin = 0, .xmax = 1, .ymax = 1, }, border, border);
+
+ if (viewgroup->is_camera) {
+ DEG_id_tag_update(&viewgroup->scene->id, ID_RECALC_COPY_ON_WRITE);
+ }
}
static bool WIDGETGROUP_camera_view_poll(const bContext *C, wmGizmoGroupType *UNUSED(gzgt))
@@ -436,6 +445,8 @@ static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmGizmoGroup *gzg
RegionView3D *rv3d = ar->regiondata;
Scene *scene = CTX_data_scene(C);
+ viewgroup->scene = scene;
+
{
wmGizmo *gz = viewgroup->border;
WM_gizmo_set_flag(gz, WM_GIZMO_HIDDEN, false);
@@ -445,9 +456,11 @@ static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmGizmoGroup *gzg
if (rv3d->persp == RV3D_CAMOB) {
viewgroup->state.edit_border = &scene->r.border;
+ viewgroup->is_camera = true;
}
else {
viewgroup->state.edit_border = &v3d->render_border;
+ viewgroup->is_camera = false;
}
WM_gizmo_target_property_def_func(