diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/interface/interface_region_popover.c | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/WM_api.h | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 12 | ||||
-rw-r--r-- | source/blender/windowmanager/wm_event_system.h | 26 |
4 files changed, 23 insertions, 21 deletions
diff --git a/source/blender/editors/interface/interface_region_popover.c b/source/blender/editors/interface/interface_region_popover.c index f4af29bee48..4fd25c4c7e2 100644 --- a/source/blender/editors/interface/interface_region_popover.c +++ b/source/blender/editors/interface/interface_region_popover.c @@ -348,7 +348,7 @@ void UI_popover_end(bContext *C, uiPopover *pup, wmKeyMap *keymap) UI_block_flag_enable(pup->block, UI_BLOCK_SHOW_SHORTCUT_ALWAYS); pup->keymap = keymap; pup->keymap_handler = WM_event_add_keymap_handler_priority(&window->modalhandlers, keymap, 0); - WM_event_set_keymap_handler_callback(pup->keymap_handler, popover_keymap_fn, pup); + WM_event_set_keymap_handler_post_callback(pup->keymap_handler, popover_keymap_fn, pup); } handle = ui_popup_block_create(C, NULL, NULL, NULL, ui_block_func_POPOVER, pup); diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 4b4473da625..f646791030b 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -205,9 +205,9 @@ struct wmKeyMap *WM_event_get_keymap_from_toolsystem(struct wmWindowManager *wm, struct wmEventHandler_Keymap *WM_event_add_keymap_handler_dynamic( ListBase *handlers, wmEventHandler_KeymapDynamicFn *keymap_fn, void *user_data); -void WM_event_remove_keymap_handler(ListBase *handlers, wmKeyMap *keymap); +void WM_event_remove_keymap_handler(ListBase *handlers, wmKeyMap *keymap); -void WM_event_set_keymap_handler_callback( +void WM_event_set_keymap_handler_post_callback( struct wmEventHandler_Keymap *handler, void (keymap_tag)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data), void *user_data); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index ecc4d369afe..28ba20eba9e 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2392,7 +2392,7 @@ static int wm_handlers_do_intern(bContext *C, wmEvent *event, ListBase *handlers for (wmKeyMapItem *kmi = keymap->items.first; kmi; kmi = kmi->next) { if (wm_eventmatch(event, kmi)) { - struct wmEventHandler_KeymapFn keymap_callback = handler->keymap_callback; + struct wmEventHandler_KeymapPost keymap_post = handler->post; PRINT("%s: item matched '%s'\n", __func__, kmi->idname); @@ -2404,8 +2404,8 @@ static int wm_handlers_do_intern(bContext *C, wmEvent *event, ListBase *handlers if (action & WM_HANDLER_BREAK) { /* not always_pass here, it denotes removed handler_base */ CLOG_INFO(WM_LOG_HANDLERS, 2, "handled! '%s'", kmi->idname); - if (keymap_callback.handle_post_fn != NULL) { - keymap_callback.handle_post_fn(keymap, kmi, keymap_callback.user_data); + if (keymap_post.post_fn != NULL) { + keymap_post.post_fn(keymap, kmi, keymap_post.user_data); } break; } @@ -3427,13 +3427,13 @@ void WM_event_remove_keymap_handler(ListBase *handlers, wmKeyMap *keymap) } } -void WM_event_set_keymap_handler_callback( +void WM_event_set_keymap_handler_post_callback( wmEventHandler_Keymap *handler, void (keymap_tag)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data), void *user_data) { - handler->keymap_callback.handle_post_fn = keymap_tag; - handler->keymap_callback.user_data = user_data; + handler->post.post_fn = keymap_tag; + handler->post.user_data = user_data; } wmEventHandler_UI *WM_event_add_ui_handler( diff --git a/source/blender/windowmanager/wm_event_system.h b/source/blender/windowmanager/wm_event_system.h index cd7a5102809..92ae4e0e2cf 100644 --- a/source/blender/windowmanager/wm_event_system.h +++ b/source/blender/windowmanager/wm_event_system.h @@ -35,11 +35,6 @@ struct ScrArea; /* wmKeyMap is in DNA_windowmanager.h, it's saveable */ -struct wmEventHandler_KeymapFn { - void (*handle_post_fn)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data); - void *user_data; -}; - /** Custom types for handlers, for signaling, freeing */ enum eWM_EventHandlerType { WM_HANDLER_TYPE_GIZMO = 1, @@ -59,20 +54,27 @@ typedef struct wmEventHandler { const rcti *bblocal, *bbwin; } wmEventHandler; +/** Run after the keymap item runs. */ +struct wmEventHandler_KeymapPost { + void (*post_fn)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data); + void *user_data; +}; + +/** Support for a getter function that looks up the keymap each access. */ +struct wmEventHandler_KeymapDynamic { + wmEventHandler_KeymapDynamicFn *keymap_fn; + void *user_data; +}; + /** #WM_HANDLER_TYPE_KEYMAP */ typedef struct wmEventHandler_Keymap { wmEventHandler head; /** Pointer to builtin/custom keymaps (never NULL). */ wmKeyMap *keymap; - /** Run after the keymap item runs. */ - struct wmEventHandler_KeymapFn keymap_callback; - /** Support for a getter function that looks up the keymap each access. */ - struct { - wmEventHandler_KeymapDynamicFn *keymap_fn; - void *user_data; - } dynamic; + struct wmEventHandler_KeymapPost post; + struct wmEventHandler_KeymapDynamic dynamic; struct bToolRef *keymap_tool; } wmEventHandler_Keymap; |