Fix #21470: changing brush settings redraws the 3d view unecessarily,
[blender-staging.git] / source / blender / editors / space_view3d / space_view3d.c
index 472631c361600a3555c8a2303c442bf46125b87c..92e3b35f6145a17e8d9bc9b723e5c05480662132 100644 (file)
@@ -453,8 +453,8 @@ static void view3d_id_path_drop_copy(wmDrag *drag, wmDropBox *drop)
        
        if(id)
                RNA_string_set(drop->ptr, "name", id->name+2);
-       if(drag->path) 
-               RNA_string_set(drop->ptr, "path", drag->path);
+       if(drag->path[0]
+               RNA_string_set(drop->ptr, "filepath", drag->path);
 }
 
 
@@ -523,13 +523,19 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
        switch(wmn->category) {
                case NC_ANIMATION:
                        switch(wmn->data) {
-                               case ND_KEYFRAME_EDIT:
                                case ND_KEYFRAME_PROP:
-                               case ND_NLA_EDIT:
                                case ND_NLA_ACTCHANGE:
-                               case ND_ANIMCHAN_SELECT:
                                        ED_region_tag_redraw(ar);
                                        break;
+                               case ND_NLA:
+                               case ND_KEYFRAME:
+                                       if (wmn->action == NA_EDITED)
+                                               ED_region_tag_redraw(ar);
+                                       break;
+                               case ND_ANIMCHAN:
+                                       if (wmn->action == NA_SELECTED)
+                                               ED_region_tag_redraw(ar);
+                                       break;
                        }
                        break;
                case NC_SCENE:
@@ -557,8 +563,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
                                case ND_MODIFIER:
                                case ND_CONSTRAINT:
                                case ND_KEYS:
-                               case ND_PARTICLE_SELECT:
-                               case ND_PARTICLE_DATA:
+                               case ND_PARTICLE:
                                        ED_region_tag_redraw(ar);
                                        break;
                        }
@@ -582,7 +587,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
                        break;
                case NC_BRUSH:
                        if(wmn->action == NA_EDITED)
-                               ED_region_tag_redraw(ar);
+                               ED_region_tag_redraw_overlay(ar);
                        break;                  
                case NC_MATERIAL:
                        switch(wmn->data) {
@@ -610,6 +615,10 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
                         * more context than just the region */
                        ED_region_tag_redraw(ar);
                        break;
+               case NC_TEXTURE:        
+                       /* same as above */
+                       ED_region_tag_redraw(ar);
+                       break;
                case NC_SPACE:
                        if(wmn->data == ND_SPACE_VIEW3D) {
                                if (wmn->subtype == NS_VIEW3D_GPU) {
@@ -705,12 +714,15 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
        switch(wmn->category) {
                case NC_ANIMATION:
                        switch(wmn->data) {
-                               case ND_KEYFRAME_EDIT:
                                case ND_KEYFRAME_PROP:
-                               case ND_NLA_EDIT:
                                case ND_NLA_ACTCHANGE:
                                        ED_region_tag_redraw(ar);
                                        break;
+                               case ND_NLA:
+                               case ND_KEYFRAME:
+                                       if (wmn->action == NA_EDITED)
+                                               ED_region_tag_redraw(ar);
+                                       break;  
                        }
                        break;
                case NC_SCENE: