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:
authorSebastian Parborg <darkdefende@gmail.com>2019-07-31 20:10:44 +0300
committerSebastian Parborg <darkdefende@gmail.com>2019-07-31 20:16:47 +0300
commitf7c13f2d761a1938a96c6435055c4308504527ff (patch)
tree75eb6742d3f35e906eff86af8c3e34e383971324 /source/blender/editors/interface/interface_query.c
parent81d4cf5f5a1d7db95f9cd75f32f5ec40252a609f (diff)
Revert "UI: remove checks for other popovers when switching menu"
This reverts commit 77616571292ab1eeb9805797bfdd4525cc306923. This commit broke overlapping popovers. For example in the color management tab it would be impossible to select and of the popover alternatives as it would switch to the menu button under the cursor.
Diffstat (limited to 'source/blender/editors/interface/interface_query.c')
-rw-r--r--source/blender/editors/interface/interface_query.c26
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);
+}
+
+/** \} */