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>2018-11-28 05:50:15 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-11-28 05:50:15 +0300
commitba8c21989c9b75bc8ec3bcacc381b2787fb07704 (patch)
tree51972d261605ac59a66d4975ac042545c06d7bf9 /source/blender/editors
parentdcf0860dabf326e3a4b37ae15baae491e661cbf8 (diff)
WM: avoid re-initializing tools while resizing areas
Every update caused the gizmo to be recreated.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/screen/area.c9
-rw-r--r--source/blender/editors/screen/screen_ops.c4
2 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 3a6cac5d958..0f024b02c43 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1640,9 +1640,12 @@ void ED_area_initialize(wmWindowManager *wm, wmWindow *win, ScrArea *sa)
}
- if ((1 << sa->spacetype) & WM_TOOLSYSTEM_SPACE_MASK) {
- WM_toolsystem_refresh_screen_area(workspace, view_layer, sa);
- sa->flag |= AREA_FLAG_ACTIVE_TOOL_UPDATE;
+ /* Avoid re-initializing tools while resizing the window. */
+ if ((G.moving & G_TRANSFORM_WM) == 0) {
+ if ((1 << sa->spacetype) & WM_TOOLSYSTEM_SPACE_MASK) {
+ WM_toolsystem_refresh_screen_area(workspace, view_layer, sa);
+ sa->flag |= AREA_FLAG_ACTIVE_TOOL_UPDATE;
+ }
}
}
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 2305ce8f5fe..812455333e9 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -1541,6 +1541,8 @@ static void area_move_exit(bContext *C, wmOperator *op)
/* this makes sure aligned edges will result in aligned grabbing */
BKE_screen_remove_double_scrverts(CTX_wm_screen(C));
BKE_screen_remove_double_scredges(CTX_wm_screen(C));
+
+ G.moving &= ~G_TRANSFORM_WM;
}
static int area_move_exec(bContext *C, wmOperator *op)
@@ -1563,6 +1565,8 @@ static int area_move_invoke(bContext *C, wmOperator *op, const wmEvent *event)
if (!area_move_init(C, op))
return OPERATOR_PASS_THROUGH;
+ G.moving |= G_TRANSFORM_WM;
+
/* add temp handler */
WM_event_add_modal_handler(C, op);