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
path: root/source
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-06-26 20:44:08 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-06-26 20:48:24 +0300
commite0b28306dfe3faed61ce74f674f006fb5340d0dd (patch)
tree0c18bb56d611bfe4db4e07ddf9957c0132ab1f31 /source
parentdf02675e21736bd79acb0e34bb410efe748a86bc (diff)
Fix status bar wrong cursor keymap using wrong region in some cases.
Diffstat (limited to 'source')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 55e8970c77e..81ea602493f 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -4347,14 +4347,23 @@ void WM_window_cursor_keymap_status_refresh(bContext *C, struct wmWindow *win)
struct CursorKeymapInfo cd_prev = *((struct CursorKeymapInfo *)win->cursor_keymap_status);
cd->state_event = *win->eventstate;
- ScrArea *sa = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, win->eventstate->x, win->eventstate->y);
- if (sa == NULL) {
+ /* Find active region and associated area. */
+ ARegion *ar = screen->active_region;
+ if (ar == NULL) {
return;
}
- ARegion *ar = BKE_area_find_region_xy(sa, RGN_TYPE_ANY, win->eventstate->x, win->eventstate->y);
- if (ar == NULL) {
+
+ ScrArea *sa = NULL;
+ ED_screen_areas_iter(win, screen, sa_iter) {
+ if (BLI_findindex(&sa_iter->regionbase, ar) != -1) {
+ sa = sa_iter;
+ break;
+ }
+ }
+ if (sa == NULL) {
return;
}
+
/* Keep as-is. */
if (ELEM(ar->regiontype, RGN_TYPE_HEADER, RGN_TYPE_TEMPORARY, RGN_TYPE_HUD)) {
return;