diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-07-31 11:45:07 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-07-31 12:50:13 +0300 |
commit | 94b81d51a6cf3fe819dfbd4b6155355892c5b05f (patch) | |
tree | c156a43e2e76d005cab7c3aa5e559b04f2033f77 /source/blender/editors/interface/interface_query.c | |
parent | ce0582ee2b3a8942cc389f0cb2a99fa83084766e (diff) |
UI: simplify check for active menu button
Dragging to select another popup now checks the menus active button.
Diffstat (limited to 'source/blender/editors/interface/interface_query.c')
-rw-r--r-- | source/blender/editors/interface/interface_query.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_query.c b/source/blender/editors/interface/interface_query.c index 462183b4245..d0efb3714bc 100644 --- a/source/blender/editors/interface/interface_query.c +++ b/source/blender/editors/interface/interface_query.c @@ -570,3 +570,29 @@ bool ui_region_contains_rect_px(const ARegion *ar, const rcti *rect_px) } /** \} */ + +/* -------------------------------------------------------------------- */ +/** \name Screen (#bScreen) Spatial + * \{ */ + +/** Check if the cursor is over any popups. */ +ARegion *ui_screen_region_find_mouse_over_ex(bScreen *screen, int x, int y) +{ + for (ARegion *ar = screen->regionbase.first; ar; ar = ar->next) { + rcti winrct; + + ui_region_winrct_get_no_margin(ar, &winrct); + + if (BLI_rcti_isect_pt(&winrct, x, y)) { + return ar; + } + } + return NULL; +} + +ARegion *ui_screen_region_find_mouse_over(bScreen *screen, const wmEvent *event) +{ + return ui_screen_region_find_mouse_over_ex(screen, event->x, event->y); +} + +/** \} */ |