diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-01-08 21:42:37 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-01-08 22:01:34 +0300 |
commit | 2d973f44e2fd47fa2fd4c1f59247c56517fcb26c (patch) | |
tree | 33322335805abc0784b4c9d8a0e78fbce0595bac /source | |
parent | 2835a151c8fbe03a1385662a15caf9ba75347722 (diff) |
Fix T47047: Toolbars opening at maximum zoom level
There were 2 issues:
- toolbars were set initialized in user-defaults
so their scroll & zoom level were set.
- initializing new 2d views included the scroll width,
which scaled the new views zoom level, especially when dragging out.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/versioning_defaults.c | 9 | ||||
-rw-r--r-- | source/blender/editors/interface/view2d.c | 12 |
2 files changed, 12 insertions, 9 deletions
diff --git a/source/blender/blenloader/intern/versioning_defaults.c b/source/blender/blenloader/intern/versioning_defaults.c index e57a2156c8d..7ea26ea781b 100644 --- a/source/blender/blenloader/intern/versioning_defaults.c +++ b/source/blender/blenloader/intern/versioning_defaults.c @@ -175,11 +175,10 @@ void BLO_update_defaults_startup_blend(Main *bmain) /* Remove all stored panels, we want to use defaults (order, open/closed) as defined by UI code here! */ BLI_freelistN(&ar->panels); - /* simple fix for 3d view properties scrollbar being not set to top */ - if (ar->regiontype == RGN_TYPE_UI) { - float offset = ar->v2d.tot.ymax - ar->v2d.cur.ymax; - ar->v2d.cur.ymax += offset; - ar->v2d.cur.ymin += offset; + /* some toolbars have been saved as initialized, + * we don't want them to have odd zoom-level or scrolling set, see: T47047 */ + if (ELEM(ar->regiontype, RGN_TYPE_UI, RGN_TYPE_TOOLS, RGN_TYPE_TOOL_PROPS)) { + ar->v2d.flag &= ~V2D_IS_INITIALISED; } } } diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c index 9976f42a48a..6425475a2c6 100644 --- a/source/blender/editors/interface/view2d.c +++ b/source/blender/editors/interface/view2d.c @@ -211,7 +211,12 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy) uiStyle *style = UI_style_get(); do_init = (v2d->flag & V2D_IS_INITIALISED) == 0; - + + /* initialize without scroll bars (interfears with zoom level see: T47047) */ + if (do_init) { + v2d->scroll |= V2D_SCROLL_VERTICAL_FULLR | V2D_SCROLL_HORIZONTAL_FULLR; + } + /* see eView2D_CommonViewTypes in UI_view2d.h for available view presets */ switch (type) { /* 'standard view' - optimum setup for 'standard' view behavior, @@ -322,16 +327,15 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy) if (do_init) { float panelzoom = (style) ? style->panelzoom : 1.0f; - float scrolw = (v2d->scroll & V2D_SCROLL_RIGHT) ? V2D_SCROLL_WIDTH : 0.0f; v2d->tot.xmin = 0.0f; - v2d->tot.xmax = winx - scrolw; + v2d->tot.xmax = winx; v2d->tot.ymax = 0.0f; v2d->tot.ymin = -winy; v2d->cur.xmin = 0.0f; - v2d->cur.xmax = (winx) * panelzoom - scrolw; + v2d->cur.xmax = (winx) * panelzoom; v2d->cur.ymax = 0.0f; v2d->cur.ymin = (-winy) * panelzoom; |