Fix T72948: Smooth active tool gizmo vibrates

This commit is contained in:
Campbell Barton 2020-01-10 13:04:52 +11:00
parent ad69127859
commit 7eaed14fae
Notes: blender-bot 2023-07-10 10:12:37 +02:00
Referenced by issue #93606, drawing of (addon defined) gizmos, while a modal operator runs
Referenced by issue #72948, Smooth active tool gizmo vibrates
2 changed files with 11 additions and 0 deletions

View File

@ -22,6 +22,7 @@
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "ED_screen.h"
#include "ED_transform.h"
@ -61,6 +62,11 @@ static bool WIDGETGROUP_tool_generic_poll(const bContext *C, wmGizmoGroupType *g
return false;
}
/* Without this, refreshing the gizmo jitters in some cases with edit-mesh smooth. See T72948. */
if (G.moving & G_TRANSFORM_EDIT) {
return false;
}
return true;
}

View File

@ -26,6 +26,7 @@
#include "BLI_string.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_layer.h"
#include "RNA_access.h"
@ -176,6 +177,8 @@ static void op_generic_value_exit(wmOperator *op)
MEM_freeN(cd->objects_xform);
MEM_freeN(cd);
}
G.moving &= ~G_TRANSFORM_EDIT;
}
static void op_generic_value_restore(wmOperator *op)
@ -228,6 +231,8 @@ static int op_generic_value_invoke(bContext *C, wmOperator *op, const wmEvent *e
op->customdata = cd;
WM_event_add_modal_handler(C, op);
G.moving |= G_TRANSFORM_EDIT;
return OPERATOR_RUNNING_MODAL;
}