Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-11-02 13:57:23 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-11-02 14:01:38 +0300
commit9bd97e62ade417f6b4025acbad46802c3e7e5683 (patch)
treed09878d49da2a76e139ecd6e424499e3891550c7 /source/blender/windowmanager/intern/wm_files.c
parent0c3b215e7d5456878b155d13440864f49ad1f230 (diff)
Fix T92464: Operators fail after opening blend files via an operator
Operators such as setting the object mode failed after calling WM_OT_open_mainfile from Python. Keep the window after loading a file outside the main event loop.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_files.c')
-rw-r--r--source/blender/windowmanager/intern/wm_files.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 67222cc07f9..ff9b56d7859 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -769,6 +769,18 @@ static void wm_file_read_post(bContext *C, const struct wmFileReadPost_Params *p
WM_toolsystem_init(C);
}
}
+
+ /* Keep last. */
+ if (use_data) {
+ if (!G.background) {
+ /* Special case, when calling indirectly (from a Python script for example),
+ * the event loop wont run again to set the active window.
+ * Set the window here to allow scripts to continue running other operations, see: T92464. */
+ if (wm->op_undo_depth > 0) {
+ CTX_wm_window_set(C, wm->windows.first);
+ }
+ }
+ }
}
/** \} */