diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-02-19 04:33:01 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-02-19 08:14:51 +0300 |
commit | 0767b63f1b81c664a18603f056d3952357d84484 (patch) | |
tree | bf84ea5d2605f791ec1dcf271c87cf8c0519b144 /source/blender/windowmanager | |
parent | 790cb7799dcfa9eda0f938f354e1a411714ec0df (diff) |
WM: move wmEventHandler.type to a boolean
Currently it's effectively a boolean for file-select handlers.
Prepare for refactoring event handlers into their own types (keymap,
operator, gizmo, ui & dropbox) to help make logic easier to follow.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 10 | ||||
-rw-r--r-- | source/blender/windowmanager/wm_event_system.h | 3 |
2 files changed, 6 insertions, 7 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 54f6e040c4a..a307cd5d0f0 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2393,7 +2393,7 @@ static int wm_handlers_do_intern(bContext *C, wmEvent *event, ListBase *handlers action |= wm_handler_ui_call(C, handler, event, always_pass); } } - else if (handler->type == WM_HANDLER_FILESELECT) { + else if (handler->op_is_fileselect) { if (!wm->is_interface_locked) { /* screen context changes here */ action |= wm_handler_fileselect_call(C, handlers, handler, event); @@ -3220,7 +3220,7 @@ void WM_event_add_fileselect(bContext *C, wmOperator *op) for (handler = win->modalhandlers.first; handler; handler = handlernext) { handlernext = handler->next; - if (handler->type == WM_HANDLER_FILESELECT) { + if (handler->op_is_fileselect) { bScreen *screen = CTX_wm_screen(C); bool cancel_handler = true; @@ -3247,7 +3247,7 @@ void WM_event_add_fileselect(bContext *C, wmOperator *op) handler = MEM_callocN(sizeof(wmEventHandler), "fileselect handler"); - handler->type = WM_HANDLER_FILESELECT; + handler->op_is_fileselect = true; handler->op = op; handler->op_area = CTX_wm_area(C); handler->op_region = CTX_wm_region(C); @@ -3307,7 +3307,7 @@ void WM_event_modal_handler_area_replace(wmWindow *win, const ScrArea *old_area, { for (wmEventHandler *handler = win->modalhandlers.first; handler; handler = handler->next) { /* fileselect handler is quite special... it needs to keep old area stored in handler, so don't change it */ - if ((handler->op_area == old_area) && (handler->type != WM_HANDLER_FILESELECT)) { + if ((handler->op_area == old_area) && (handler->op_is_fileselect == false)) { handler->op_area = new_area; } } @@ -3492,7 +3492,7 @@ void WM_event_remove_area_handler(ListBase *handlers, void *area) for (handler = handlers->first; handler; handler = nexthandler) { nexthandler = handler->next; - if (handler->type != WM_HANDLER_FILESELECT) { + if (handler->op_is_fileselect == false) { if (handler->ui_area == area) { BLI_remlink(handlers, handler); wm_event_free_handler(handler); diff --git a/source/blender/windowmanager/wm_event_system.h b/source/blender/windowmanager/wm_event_system.h index d5942ba8682..8b245d05612 100644 --- a/source/blender/windowmanager/wm_event_system.h +++ b/source/blender/windowmanager/wm_event_system.h @@ -43,7 +43,6 @@ struct wmEventHandler_KeymapFn { typedef struct wmEventHandler { struct wmEventHandler *next, *prev; - char type; /* WM_HANDLER_DEFAULT, ... */ char flag; /* WM_HANDLER_BLOCKING, ... */ /* keymap handler */ @@ -55,6 +54,7 @@ typedef struct wmEventHandler { struct bToolRef *keymap_tool; /* modal operator handler */ + bool op_is_fileselect; wmOperator *op; /* for derived/modal handlers */ struct ScrArea *op_area; /* for derived/modal handlers */ struct ARegion *op_region; /* for derived/modal handlers */ @@ -77,7 +77,6 @@ typedef struct wmEventHandler { /* custom types for handlers, for signaling, freeing */ enum { WM_HANDLER_DEFAULT, - WM_HANDLER_FILESELECT, }; /* wm_event_system.c */ |