diff options
-rw-r--r-- | source/blender/editors/io/io_cache.c | 30 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_playanim.c | 3 |
2 files changed, 17 insertions, 16 deletions
diff --git a/source/blender/editors/io/io_cache.c b/source/blender/editors/io/io_cache.c index af6f55d7a64..a5e90ebbe7a 100644 --- a/source/blender/editors/io/io_cache.c +++ b/source/blender/editors/io/io_cache.c @@ -97,22 +97,24 @@ static int cachefile_open_exec(bContext *C, wmOperator *op) BLI_strncpy(cache_file->filepath, filename, FILE_MAX); BKE_cachefile_reload(bmain, cache_file); - /* hook into UI */ - PropertyPointerRNA *pprop = op->customdata; - - if (pprop->prop) { - /* when creating new ID blocks, use is already 1, but RNA - * pointer se also increases user, so this compensates it */ - id_us_min(&cache_file->id); - - PointerRNA idptr; - RNA_id_pointer_create(&cache_file->id, &idptr); - RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr); - RNA_property_update(C, &pprop->ptr, pprop->prop); + /* Will be set when running invoke, not exec directly. */ + if (op->customdata != NULL) { + /* hook into UI */ + PropertyPointerRNA *pprop = op->customdata; + if (pprop->prop) { + /* when creating new ID blocks, use is already 1, but RNA + * pointer se also increases user, so this compensates it */ + id_us_min(&cache_file->id); + + PointerRNA idptr; + RNA_id_pointer_create(&cache_file->id, &idptr); + RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr); + RNA_property_update(C, &pprop->ptr, pprop->prop); + } + + MEM_freeN(op->customdata); } - MEM_freeN(op->customdata); - return OPERATOR_FINISHED; } diff --git a/source/blender/windowmanager/intern/wm_playanim.c b/source/blender/windowmanager/intern/wm_playanim.c index e2e0d7dd450..fdcded8e50a 100644 --- a/source/blender/windowmanager/intern/wm_playanim.c +++ b/source/blender/windowmanager/intern/wm_playanim.c @@ -1437,8 +1437,7 @@ static char *wm_main_playanim_intern(int argc, const char **argv) ps.next_frame = ps.direction; - - while ((hasevent = GHOST_ProcessEvents(g_WS.ghost_system, 0)) || ps.wait2) { + while ((hasevent = GHOST_ProcessEvents(g_WS.ghost_system, ps.wait2))) { if (hasevent) { GHOST_DispatchEvents(g_WS.ghost_system); } |