diff options
author | Ton Roosendaal <ton@blender.org> | 2012-12-21 20:11:50 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2012-12-21 20:11:50 +0400 |
commit | 4d8f340d3e481822d6d4a2fb0f87424e7b4dbad5 (patch) | |
tree | dc2aeafe1c8f7ff3934c81bd799309b44e1c253a /source/blender/editors/interface/view2d_ops.c | |
parent | 0ae16da000b6187c01405fb29b79e4b225241ff2 (diff) |
Bug fix, own collection:
User preference "Zoom Scale" didn't work correct for 2d views.
(was calculating center of region badly).
Diffstat (limited to 'source/blender/editors/interface/view2d_ops.c')
-rw-r--r-- | source/blender/editors/interface/view2d_ops.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c index 48a1f8bf0f3..4a3daaf71c2 100644 --- a/source/blender/editors/interface/view2d_ops.c +++ b/source/blender/editors/interface/view2d_ops.c @@ -1015,12 +1015,12 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, wmEvent *event) /* x-axis transform */ dist = BLI_rcti_size_x(&v2d->mask) / 2.0f; - dx = 1.0f - (fabsf(vzd->lastx - dist) + 2.0f) / (fabsf(event->x - dist) + 2.0f); + dx = 1.0f - (fabsf(vzd->lastx - vzd->ar->winrct.xmin - dist) + 2.0f) / (fabsf(event->mval[0] - dist) + 2.0f); dx *= 0.5f * BLI_rctf_size_x(&v2d->cur); /* y-axis transform */ dist = BLI_rcti_size_y(&v2d->mask) / 2.0f; - dy = 1.0f - (fabsf(vzd->lasty - dist) + 2.0f) / (fabsf(event->y - dist) + 2.0f); + dy = 1.0f - (fabsf(vzd->lasty - vzd->ar->winrct.ymin- dist) + 2.0f) / (fabsf(event->mval[1] - dist) + 2.0f); dy *= 0.5f * BLI_rctf_size_y(&v2d->cur); } else { @@ -1034,18 +1034,7 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, wmEvent *event) /* y-axis transform */ fac = 0.01f * (event->y - vzd->lasty); dy = fac * BLI_rctf_size_y(&v2d->cur); -#if 0 - /* continuous zoom shouldn't move that fast... */ - if (U.viewzoom == USER_ZOOM_CONT) { // XXX store this setting as RNA prop? - double time = PIL_check_seconds_timer(); - float time_step = (float)(time - vzd->timer_lastdraw); - - dx /= (0.1f / time_step); - dy /= (0.1f / time_step); - - vzd->timer_lastdraw = time; - } -#endif + } /* set transform amount, and add current deltas to stored total delta (for redo) */ |