Revision: 46527
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46527
Author:   nicholasbishop
Date:     2012-05-10 20:35:41 +0000 (Thu, 10 May 2012)
Log Message:
-----------
Update the keymap for the mask brush.

* Add MKEY as a toggle for the mask brush. We could use ALT similar to
  SHIFT toggling the smooth brush, but it would conflict with MMB
  emulation (not to mention many window managers.)

* When the mask brush is active, SHIFT toggles it into smooth mode.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c
    trunk/blender/source/blender/editors/sculpt_paint/sculpt.c

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c       
2012-05-10 20:35:32 UTC (rev 46526)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c       
2012-05-10 20:35:41 UTC (rev 46527)
@@ -653,6 +653,9 @@
        keymap_brush_select(keymap, OB_MODE_SCULPT, SCULPT_TOOL_FLATTEN, TKEY, 
KM_SHIFT);
        keymap_brush_select(keymap, OB_MODE_SCULPT, SCULPT_TOOL_CLAY, CKEY, 0);
        keymap_brush_select(keymap, OB_MODE_SCULPT, SCULPT_TOOL_CREASE, CKEY, 
KM_SHIFT);
+       kmi= keymap_brush_select(keymap, OB_MODE_SCULPT, SCULPT_TOOL_MASK, 
MKEY, 0);
+       RNA_boolean_set(kmi->ptr, "toggle", 1);
+       RNA_boolean_set(kmi->ptr, "create_missing", 1);
 
        /* */
        kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", AKEY, 
KM_PRESS, 0, 0);

Modified: trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/sculpt.c  2012-05-10 
20:35:32 UTC (rev 46526)
+++ trunk/blender/source/blender/editors/sculpt_paint/sculpt.c  2012-05-10 
20:35:41 UTC (rev 46527)
@@ -258,6 +258,7 @@
        float vertex_rotation;
 
        char saved_active_brush_name[MAX_ID_NAME];
+       char saved_mask_brush_tool;
        int alt_smooth;
 
        float plane_trim_squared;
@@ -3112,15 +3113,22 @@
 
        /* Alt-Smooth */
        if (ss->cache->alt_smooth) {
-               Paint *p = &sd->paint;
-               Brush *br;
+               if (brush->sculpt_tool == SCULPT_TOOL_MASK) {
+                       cache->saved_mask_brush_tool = brush->mask_tool;
+                       brush->mask_tool = BRUSH_MASK_SMOOTH;
+               }
+               else {
+                       Paint *p = &sd->paint;
+                       Brush *br;
                
-               BLI_strncpy(cache->saved_active_brush_name, brush->id.name + 2, 
sizeof(cache->saved_active_brush_name));
+                       BLI_strncpy(cache->saved_active_brush_name, 
brush->id.name + 2,
+                                               
sizeof(cache->saved_active_brush_name));
 
-               br = (Brush *)BKE_libblock_find_name(ID_BR, "Smooth");
-               if (br) {
-                       paint_brush_set(p, br);
-                       brush = br;
+                       br = (Brush *)BKE_libblock_find_name(ID_BR, "Smooth");
+                       if (br) {
+                               paint_brush_set(p, br);
+                               brush = br;
+                       }
                }
        }
 
@@ -3683,11 +3691,16 @@
 
                /* Alt-Smooth */
                if (ss->cache->alt_smooth) {
-                       Paint *p = &sd->paint;
-                       brush = (Brush *)BKE_libblock_find_name(ID_BR, 
ss->cache->saved_active_brush_name);
-                       if (brush) {
-                               paint_brush_set(p, brush);
+                       if (brush->sculpt_tool == SCULPT_TOOL_MASK) {
+                               brush->mask_tool = 
ss->cache->saved_mask_brush_tool;
                        }
+                       else {
+                               Paint *p = &sd->paint;
+                               brush = (Brush *)BKE_libblock_find_name(ID_BR, 
ss->cache->saved_active_brush_name);
+                               if (brush) {
+                                       paint_brush_set(p, brush);
+                               }
+                       }
                }
 
                /* update last stroke position */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to