From f88ea20285891d516c91c976239f95994f73abf3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 19 Feb 2019 15:18:56 +1100 Subject: WM: move operator handler to it's own type --- source/blender/windowmanager/intern/wm.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'source/blender/windowmanager/intern/wm.c') diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index ce309284ff0..72b906ce853 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -197,17 +197,17 @@ void WM_operator_handlers_clear(wmWindowManager *wm, wmOperatorType *ot) wmWindow *win; for (win = wm->windows.first; win; win = win->next) { ListBase *lb[2] = {&win->handlers, &win->modalhandlers}; - wmEventHandler *handler; - int i; - - for (i = 0; i < 2; i++) { - for (handler = lb[i]->first; handler; handler = handler->next) { - if (handler->op && handler->op->type == ot) { - /* don't run op->cancel because it needs the context, - * assume whoever unregisters the operator will cleanup */ - handler->flag |= WM_HANDLER_DO_FREE; - WM_operator_free(handler->op); - handler->op = NULL; + for (int i = 0; i < ARRAY_SIZE(lb); i++) { + for (wmEventHandler *handler_base = lb[i]->first; handler_base; handler_base = handler_base->next) { + if (handler_base->type == WM_HANDLER_TYPE_OP) { + wmEventHandler_Op *handler = (wmEventHandler_Op *)handler_base; + if (handler->op && handler->op->type == ot) { + /* don't run op->cancel because it needs the context, + * assume whoever unregisters the operator will cleanup */ + handler->base.flag |= WM_HANDLER_DO_FREE; + WM_operator_free(handler->op); + handler->op = NULL; + } } } } -- cgit v1.2.3