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:
Joseph Eagar 2010-01-24 04:26:01 +00:00
parent 27db00bf18
commit 351d239ac7
8 changed files with 14 additions and 3 deletions

@ -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)