diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index f0b8577be47..33564834bcb 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -343,7 +343,7 @@ int WM_read_homefile(bContext *C, wmOperator *op) { ListBase wmbase; char tstr[FILE_MAXDIR+FILE_MAXFILE], scestr[FILE_MAXDIR]; - int from_memory= op?RNA_boolean_get(op->ptr, "factory"):0; + int from_memory= op && strcmp(op->type->idname, "WM_OT_read_factory_settings")==0; int success; free_ttfont(); /* still weird... what does it here? */ diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index b880dab2ee6..91bebb89a9a 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1416,8 +1416,17 @@ static void WM_OT_read_homefile(wmOperatorType *ot) ot->invoke= WM_operator_confirm; ot->exec= WM_read_homefile; ot->poll= WM_operator_winactive; +} + +static void WM_OT_read_factory_settings(wmOperatorType *ot) +{ + ot->name= "Load Factory Settings"; + ot->idname= "WM_OT_read_factory_settings"; + ot->description="Load default file and user preferences"; - RNA_def_boolean(ot->srna, "factory", 0, "Factory Settings", ""); + ot->invoke= WM_operator_confirm; + ot->exec= WM_read_homefile; + ot->poll= WM_operator_winactive; } /* *************** open file **************** */ @@ -3059,6 +3068,7 @@ void wm_operatortype_init(void) { WM_operatortype_append(WM_OT_window_duplicate); WM_operatortype_append(WM_OT_read_homefile); + WM_operatortype_append(WM_OT_read_factory_settings); WM_operatortype_append(WM_OT_save_homefile); WM_operatortype_append(WM_OT_window_fullscreen_toggle); WM_operatortype_append(WM_OT_exit_blender);