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 07:18:56 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-02-19 08:17:21 +0300
commitf88ea20285891d516c91c976239f95994f73abf3 (patch)
treeef07c2513dcfc688d9c6cdd2fa8aa2fdf8b98d32 /source/blender/windowmanager/wm_event_system.h
parenteae2942474fa06b369b3fc6ebdeddad90ca38d43 (diff)
WM: move operator handler to it's own type
Diffstat (limited to 'source/blender/windowmanager/wm_event_system.h')
-rw-r--r--source/blender/windowmanager/wm_event_system.h27
1 files changed, 20 insertions, 7 deletions
diff --git a/source/blender/windowmanager/wm_event_system.h b/source/blender/windowmanager/wm_event_system.h
index 3e9793521ae..5346ec516ee 100644
--- a/source/blender/windowmanager/wm_event_system.h
+++ b/source/blender/windowmanager/wm_event_system.h
@@ -45,6 +45,7 @@ enum eWM_EventHandlerType {
WM_HANDLER_TYPE_DEFAULT,
WM_HANDLER_TYPE_GIZMO,
WM_HANDLER_TYPE_UI,
+ WM_HANDLER_TYPE_OP,
};
typedef struct wmEventHandler {
@@ -61,13 +62,6 @@ 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 */
- short op_region_type; /* for derived/modal handlers */
-
/* drop box handler */
ListBase *dropboxes;
@@ -97,6 +91,25 @@ typedef struct wmEventHandler_UI {
} context;
} wmEventHandler_UI;
+/** #WM_HANDLER_TYPE_OP */
+typedef struct wmEventHandler_Op {
+ wmEventHandler base;
+
+ /** Operator can be NULL. */
+ wmOperator *op;
+
+ /** Hack, special case for file-select. */
+ bool is_fileselect;
+
+ /** Store context for this handler for derived/modal handlers. */
+ struct {
+ struct ScrArea *area;
+ struct ARegion *region;
+ short region_type;
+ } context;
+} wmEventHandler_Op;
+
+
/* wm_event_system.c */
void wm_event_free_all (wmWindow *win);
void wm_event_free (wmEvent *event);