diff options
author | Jacques Lucke <mail@jlucke.com> | 2019-04-24 18:34:48 +0300 |
---|---|---|
committer | Jacques Lucke <mail@jlucke.com> | 2019-04-24 18:34:48 +0300 |
commit | ea8026438104f7be178fcb06562932e4e3d2f094 (patch) | |
tree | a980a39731cce5ac8cb1ba0cb94db467c4567c10 /source/blender/editors/screen | |
parent | 7a92b8820b9661af39165f048d716559e513ddab (diff) |
Refactor: allow event handlers to have a poll function
Previously only a fixed bounding box could be used.
This was not flexible enough.
T63193 will benefit from this refactor.
Reviewers: brecht, campbellbarton
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r-- | source/blender/editors/screen/area.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 5cd5153b060..a06674bd8b8 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -1550,6 +1550,13 @@ static void region_subwindow(ARegion *ar) ar->visible = !hidden; } +static bool event_in_markers_region(const ARegion *ar, const wmEvent *event) +{ + rcti rect = ar->winrct; + rect.ymax = rect.ymin + UI_MARKER_MARGIN_Y; + return BLI_rcti_isect_pt(&rect, event->x, event->y); +} + /** * \param ar: Region, may be NULL when adding handlers for \a sa. */ @@ -1591,13 +1598,7 @@ static void ed_default_handlers( if (flag & ED_KEYMAP_MARKERS) { /* time-markers */ wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "Markers", 0, 0); - - /* use a boundbox restricted map */ - /* same local check for all areas */ - static rcti rect = {0, 10000, 0, -1}; - rect.ymax = UI_MARKER_MARGIN_Y; - BLI_assert(ar->type->regionid == RGN_TYPE_WINDOW); - WM_event_add_keymap_handler_bb(handlers, keymap, &rect, &ar->winrct); + WM_event_add_keymap_handler_poll(handlers, keymap, event_in_markers_region); } if (flag & ED_KEYMAP_ANIMATION) { /* frame changing and timeline operators (for time spaces) */ |