forked from bartvdbraak/blender
View3d transform was sending a too-general notifier to redraw, causing several animation editors and the property editor to redraw too, which can really slow things down. added a more specific ND_VIEW3D_TRANSFORM notifier to solve this.
This commit is contained in:
parent
27db00bf18
commit
351d239ac7
@ -386,7 +386,8 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn)
|
||||
saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
|
||||
ED_area_tag_refresh(sa);
|
||||
break;
|
||||
|
||||
case ND_VIEW3D_TRANSFORM:
|
||||
break; /*do nothing*/
|
||||
default: /* just redrawing the view will do */
|
||||
ED_area_tag_redraw(sa);
|
||||
break;
|
||||
|
@ -303,6 +303,8 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
|
||||
/* currently works by redraws... if preview is set, it (re)starts job */
|
||||
sbuts->preview= 1;
|
||||
break;
|
||||
case ND_VIEW3D_TRANSFORM:
|
||||
break; /*do nothing*/
|
||||
default:
|
||||
/* Not all object RNA props have a ND_ notifier (yet) */
|
||||
ED_area_tag_redraw(sa);
|
||||
|
@ -462,6 +462,8 @@ static void graph_listener(ScrArea *sa, wmNotifier *wmn)
|
||||
sipo->flag |= SIPO_TEMP_NEEDCHANSYNC;
|
||||
ED_area_tag_refresh(sa);
|
||||
break;
|
||||
case ND_VIEW3D_TRANSFORM:
|
||||
break; /*do nothing*/
|
||||
|
||||
default: /* just redrawing the view will do */
|
||||
ED_area_tag_redraw(sa);
|
||||
|
@ -491,7 +491,8 @@ static void nla_listener(ScrArea *sa, wmNotifier *wmn)
|
||||
ED_area_tag_refresh(sa);
|
||||
break;
|
||||
}*/
|
||||
ED_area_tag_refresh(sa);
|
||||
if (wmn->data != ND_VIEW3D_TRANSFORM)
|
||||
ED_area_tag_refresh(sa);
|
||||
break;
|
||||
case NC_SPACE:
|
||||
if(wmn->data == ND_SPACE_NLA)
|
||||
|
@ -131,6 +131,7 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn)
|
||||
case ND_BONE_ACTIVE:
|
||||
case ND_BONE_SELECT:
|
||||
case ND_TRANSFORM:
|
||||
case ND_VIEW3D_TRANSFORM:
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
case ND_MODIFIER:
|
||||
|
@ -454,6 +454,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
|
||||
switch(wmn->data) {
|
||||
case ND_FRAME:
|
||||
case ND_TRANSFORM:
|
||||
case ND_VIEW3D_TRANSFORM:
|
||||
case ND_OB_ACTIVE:
|
||||
case ND_OB_SELECT:
|
||||
case ND_LAYER:
|
||||
@ -470,6 +471,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
|
||||
case ND_BONE_ACTIVE:
|
||||
case ND_BONE_SELECT:
|
||||
case ND_TRANSFORM:
|
||||
case ND_VIEW3D_TRANSFORM:
|
||||
case ND_POSE:
|
||||
case ND_DRAW:
|
||||
case ND_MODIFIER:
|
||||
@ -636,6 +638,7 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
|
||||
case ND_BONE_ACTIVE:
|
||||
case ND_BONE_SELECT:
|
||||
case ND_TRANSFORM:
|
||||
case ND_VIEW3D_TRANSFORM:
|
||||
case ND_POSE:
|
||||
case ND_DRAW:
|
||||
case ND_KEYS:
|
||||
|
@ -302,7 +302,7 @@ static void viewRedrawForce(bContext *C, TransInfo *t)
|
||||
if (t->spacetype == SPACE_VIEW3D)
|
||||
{
|
||||
/* Do we need more refined tags? */
|
||||
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
|
||||
WM_event_add_notifier(C, NC_OBJECT|ND_VIEW3D_TRANSFORM, NULL);
|
||||
|
||||
/* for realtime animation record - send notifiers recognised by animation editors */
|
||||
if ((t->animtimer) && IS_AUTOKEY_ON(t->scene))
|
||||
|
@ -188,6 +188,7 @@ typedef struct wmNotifier {
|
||||
#define ND_CONSTRAINT (24<<16) /* constraints edited */
|
||||
#define ND_PARTICLE_DATA (25<<16) /* particles edited */
|
||||
#define ND_PARTICLE_SELECT (26<<16) /* particles selecting change */
|
||||
#define ND_VIEW3D_TRANSFORM (27<<16)
|
||||
|
||||
/* NC_MATERIAL Material */
|
||||
#define ND_SHADING (30<<16)
|
||||
|
Loading…
Reference in New Issue
Block a user