diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-10-15 16:42:19 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-10-15 17:13:28 +0300 |
commit | 6e4ab5b761b03b52177985ecbeb2c2f576159c74 (patch) | |
tree | b9e14c71a9840adfe578c73a45a5dce5e7fb1d54 /source/blender/windowmanager/WM_api.h | |
parent | d4f1bc5f39b219466978a1c9e74618ff8fa27433 (diff) |
Fix crash handling tool-keymap events
There was a rare crash in WM_event_get_keymap_from_toolsystem_fallback
when wm->winactive was NULL.
This could happen when the event was handled
immediately after closing a window.
Diffstat (limited to 'source/blender/windowmanager/WM_api.h')
-rw-r--r-- | source/blender/windowmanager/WM_api.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 26406966952..4ee514edb3c 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -272,13 +272,16 @@ typedef struct wmEventHandler_KeymapResult { } wmEventHandler_KeymapResult; typedef void(wmEventHandler_KeymapDynamicFn)(wmWindowManager *wm, + struct wmWindow *win, struct wmEventHandler_Keymap *handler, struct wmEventHandler_KeymapResult *km_result); void WM_event_get_keymap_from_toolsystem_fallback(struct wmWindowManager *wm, + struct wmWindow *win, struct wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result); void WM_event_get_keymap_from_toolsystem(struct wmWindowManager *wm, + struct wmWindow *win, struct wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result); @@ -293,6 +296,7 @@ void WM_event_set_keymap_handler_post_callback(struct wmEventHandler_Keymap *han void *user_data), void *user_data); void WM_event_get_keymaps_from_handler(wmWindowManager *wm, + struct wmWindow *win, struct wmEventHandler_Keymap *handler, struct wmEventHandler_KeymapResult *km_result); @@ -302,6 +306,7 @@ wmKeyMapItem *WM_event_match_keymap_item(struct bContext *C, wmKeyMapItem *WM_event_match_keymap_item_from_handlers(struct bContext *C, struct wmWindowManager *wm, + struct wmWindow *win, struct ListBase *handlers, const struct wmEvent *event); |