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>2010-11-08 06:44:52 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-11-08 06:44:52 +0300
commit85b9652258f515b7d0f0133df9166c4aae6136af (patch)
treec5dd63d580eacb9980a57f39f59e4d2a93ca6ed1 /source/blender/editors/space_view3d/view3d_view.c
parentc300d58497f2eb51614e07101f7f08a25cc167a3 (diff)
fix for glitches with quad-split view.
- Home or Numpad Period with smoothview disabled were not syncing up the other views. - Disabling clip only disabled clip syncing but left clip enabled for all views. - Clip was being calculated for every update even when not enabled. - The perspective view was being used to copy settings from when changing box & clip settings, resetting the distance each time. Now use one of the aligned views instead.
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_view.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 80de1cdc040..52fe0b2304d 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -180,6 +180,7 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
struct SmoothViewStore sms= {0};
+ short ok= FALSE;
/* initialize sms */
copy_v3_v3(sms.new_ofs, rv3d->ofs);
@@ -269,18 +270,26 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo
/* TIMER1 is hardcoded in keymap */
rv3d->smooth_timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER1, 1.0/100.0); /* max 30 frs/sec */
- return;
+ ok= TRUE;
}
}
/* if we get here nothing happens */
- if(sms.to_camera==0) {
- copy_v3_v3(rv3d->ofs, sms.new_ofs);
- copy_qt_qt(rv3d->viewquat, sms.new_quat);
- rv3d->dist = sms.new_dist;
- v3d->lens = sms.new_lens;
+ if(ok == FALSE) {
+ ARegion *ar= CTX_wm_region(C);
+
+ if(sms.to_camera==0) {
+ copy_v3_v3(rv3d->ofs, sms.new_ofs);
+ copy_qt_qt(rv3d->viewquat, sms.new_quat);
+ rv3d->dist = sms.new_dist;
+ v3d->lens = sms.new_lens;
+ }
+
+ if(rv3d->viewlock & RV3D_BOXVIEW)
+ view3d_boxview_copy(CTX_wm_area(C), ar);
+
+ ED_region_tag_redraw(ar);
}
- ED_region_tag_redraw(CTX_wm_region(C));
}
/* only meant for timer usage */