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:
-rw-r--r--source/blender/editors/interface/interface_region_popover.c2
-rw-r--r--source/blender/windowmanager/WM_api.h4
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c12
-rw-r--r--source/blender/windowmanager/wm_event_system.h26
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;