diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2009-08-14 19:47:32 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2009-08-14 19:47:32 +0400 |
commit | 0ba5cf245023e8c2310cdcbfe03d9da21d9330a5 (patch) | |
tree | 34c2683f278df52b48df334126690fd7e744672f /source/blender/editors/space_view3d | |
parent | c32fce07051572460070fb36ce85519565899c92 (diff) |
2.5/Paint modes:
* Fixed one of the items from Brecht's TODO mail. Exiting edit mode now restores any paint mode you might have been in, rather than going to object mode.
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_header.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 2e0172f4238..d40b3ad4600 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -134,28 +134,37 @@ static int retopo_mesh_paint_check() {return 0;} /* end XXX ************* */ - -/* well... in this file a lot of view mode manipulation happens, so let's have it defined here */ -void ED_view3d_exit_paint_modes(bContext *C) +static int ED_toggle_paint_modes(bContext *C, int mode) { - if(G.f & G_TEXTUREPAINT) + if(mode & G_TEXTUREPAINT) WM_operator_name_call(C, "PAINT_OT_texture_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL); - if(G.f & G_VERTEXPAINT) + if(mode & G_VERTEXPAINT) WM_operator_name_call(C, "PAINT_OT_vertex_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL); - else if(G.f & G_WEIGHTPAINT) + else if(mode & G_WEIGHTPAINT) WM_operator_name_call(C, "PAINT_OT_weight_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL); - if(G.f & G_SCULPTMODE) + if(mode & G_SCULPTMODE) WM_operator_name_call(C, "SCULPT_OT_sculptmode_toggle", WM_OP_EXEC_REGION_WIN, NULL); - if(G.f & G_PARTICLEEDIT) + if(mode & G_PARTICLEEDIT) WM_operator_name_call(C, "PARTICLE_OT_particle_edit_toggle", WM_OP_EXEC_REGION_WIN, NULL); - - G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT+G_SCULPTMODE+G_PARTICLEEDIT); } +/* well... in this file a lot of view mode manipulation happens, so let's have it defined here */ +int ED_view3d_exit_paint_modes(bContext *C) +{ + int restore = G.f; + ED_toggle_paint_modes(C, G.f); + + G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT+G_SCULPTMODE+G_PARTICLEEDIT); + return restore; +} +void ED_view3d_restore_paint_modes(struct bContext *C, int mode) +{ + ED_toggle_paint_modes(C, mode); +} static void do_view3d_header_buttons(bContext *C, void *arg, int event); |