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:
authorJacques Lucke <jacques@blender.org>2020-05-25 19:33:12 +0300
committerJulian Eisel <julian@blender.org>2020-05-25 19:33:12 +0300
commit6fbeded285466327831b901c652e13e742c44689 (patch)
treeb63dcb2a38a826acfed25a2ee47405bc7a0621bf /source/blender/windowmanager
parent396bf6ca781fdfa79544c92f3d6bdff52c96fedf (diff)
Fix T76926: Crash with Full Screen file browser window preference
Alternative fix for T75292 & T73579 (see b75ce05c3b0f), that does not cause this crash. The crash happened because cancelling the file browser removes its screen (as in bScreen). Before rBb75ce05c3b0f, the file browser event wouldn't be handled any further then. After it, it would still be passed to other areas, while the screen pointer was dangling. Now the event is only skipped for UI handlers. Reviewed by: Julian Eisel
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index c7bda0bdae0..0da82881ba3 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -563,7 +563,7 @@ void wm_event_do_notifiers(bContext *C)
static int wm_event_always_pass(const wmEvent *event)
{
/* some events we always pass on, to ensure proper communication */
- return ISTIMER(event->type) || (event->type == WINDEACTIVATE) || (event->type == EVT_FILESELECT);
+ return ISTIMER(event->type) || (event->type == WINDEACTIVATE);
}
/** \} */
@@ -602,6 +602,12 @@ static int wm_handler_ui_call(bContext *C,
}
}
+ /* Don't block file-select events. Those are triggered by a separate file browser window.
+ * See T75292. */
+ if (event->type == EVT_FILESELECT) {
+ return WM_UI_HANDLER_CONTINUE;
+ }
+
/* we set context to where ui handler came from */
if (handler->context.area) {
CTX_wm_area_set(C, handler->context.area);