diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 3 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_wm.c | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 4a4d78e16ab..5acb6bd2381 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2356,6 +2356,9 @@ static void SCREEN_OT_marker_jump(wmOperatorType *ot) static bool screen_set_is_ok(bScreen *screen, bScreen *screen_prev) { return ((screen->winid == 0) && + /* in typical useage these should have a nonzero winid + * (all temp screens should be used, or closed & freed). */ + (screen->temp == false) && (screen->state == SCREENNORMAL) && (screen != screen_prev) && (screen->id.name[2] != '.' || !(U.uiflag & USER_HIDE_DOT))); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 8dd995205c9..aa4bfe0462e 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -615,6 +615,11 @@ static void rna_Window_screen_set(PointerRNA *ptr, PointerRNA value) { wmWindow *win = (wmWindow *)ptr->data; + /* disallow ID-browsing away from temp screens */ + if (win->screen->temp) { + return; + } + if (value.data == NULL) return; |