diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-01-01 17:08:07 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-01-01 17:08:07 +0400 |
commit | 1692f17c9b3d28e176e95443e491bb508de18932 (patch) | |
tree | 45aa52aa352faece30850d3245282c97a908e6a0 /source/blender/editors/mesh/editface.c | |
parent | 1db74622cecfc7fa4172b961961309ae6c793c67 (diff) |
fix for long standing annoyance with weight-paint mode selection.
There was no selection flushing when faces or verts were selected, this allowed incorrect selection states like selected face with unselected vertices.
add flush commands to paintface_flush_flags() and paintvert_flush_flags()
Diffstat (limited to 'source/blender/editors/mesh/editface.c')
-rw-r--r-- | source/blender/editors/mesh/editface.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index 11226b38cbb..3fbfaabbc0d 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -69,7 +69,14 @@ void paintface_flush_flags(Object *ob) int totface, totpoly; int i; - if (me == NULL || dm == NULL) + if (me == NULL) + return; + + /* we could call this directly in all areas that change selection, + * since this could become slow for realtime updates (circle-select for eg) */ + BKE_mesh_flush_select_from_polys(me); + + if (dm == NULL) return; /* @@ -603,7 +610,14 @@ void paintvert_flush_flags(Object *ob) int totvert; int i; - if (me == NULL || dm == NULL) + if (me == NULL) + return; + + /* we could call this directly in all areas that change selection, + * since this could become slow for realtime updates (circle-select for eg) */ + BKE_mesh_flush_select_from_verts(me); + + if (dm == NULL) return; index_array = dm->getVertDataArray(dm, CD_ORIGINDEX); |