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:
authorCampbell Barton <ideasman42@gmail.com>2019-02-19 04:33:01 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-02-19 08:14:51 +0300
commit0767b63f1b81c664a18603f056d3952357d84484 (patch)
treebf84ea5d2605f791ec1dcf271c87cf8c0519b144 /source/blender/windowmanager
parent790cb7799dcfa9eda0f938f354e1a411714ec0df (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.c10
-rw-r--r--source/blender/windowmanager/wm_event_system.h3
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 */