Index: source/blender/editors/interface/interface.c =================================================================== --- source/blender/editors/interface/interface.c (revision 37036) +++ source/blender/editors/interface/interface.c (working copy) @@ -1670,15 +1670,12 @@ void ui_set_but_default(bContext *C, uiBut *but, short all) { - /* if there is a valid property that is editable... */ - if (but->rnapoin.data && but->rnaprop && RNA_property_editable(&but->rnapoin, but->rnaprop)) { - int index = (all)? -1 : but->rnaindex; - - if(RNA_property_reset(&but->rnapoin, but->rnaprop, index)) { - /* perform updates required for this property */ - RNA_property_update(C, &but->rnapoin, but->rnaprop); - } - } + PointerRNA ptr; + + WM_operator_properties_create(&ptr, "UI_OT_reset_default_button"); + RNA_boolean_set(&ptr, "all", all); + WM_operator_name_call(C, "UI_OT_reset_default_button", WM_OP_EXEC_DEFAULT, &ptr); + WM_operator_properties_free(&ptr); } static double soft_range_round_up(double value, double max) Index: source/blender/editors/interface/interface_handlers.c =================================================================== --- source/blender/editors/interface/interface_handlers.c (revision 37036) +++ source/blender/editors/interface/interface_handlers.c (working copy) @@ -4442,10 +4442,10 @@ } /* reset to default */ /* XXX hardcoded keymap check.... */ - else if(ELEM(event->type, ZEROKEY, PAD0) && event->val == KM_PRESS) { - /* ctrl-0 = for arrays, only the active one gets done (vs whole array for just 0) */ + else if(ELEM(event->type, DELKEY, PADPERIOD) && event->val == KM_PRESS) { + /* del - reset active button; ctrl+del - reset a whole array*/ if (!(ELEM3(but->type, HSVCIRCLE, HSVCUBE, HISTOGRAM))) - ui_set_but_default(C, but, !event->ctrl); + ui_set_but_default(C, but, event->ctrl); } /* handle menu */ else if(event->type == RIGHTMOUSE && event->val == KM_PRESS) {