[Bf-blender-cvs] [e0b28306dfe] blender2.8: Fix status bar wrong cursor keymap using wrong region in some cases.

Brecht Van Lommel noreply at git.blender.org
Tue Jun 26 20:25:08 CEST 2018


Commit: e0b28306dfe3faed61ce74f674f006fb5340d0dd
Author: Brecht Van Lommel
Date:   Tue Jun 26 19:44:08 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBe0b28306dfe3faed61ce74f674f006fb5340d0dd

Fix status bar wrong cursor keymap using wrong region in some cases.

===================================================================

M	source/blender/windowmanager/intern/wm_event_system.c

===================================================================

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;



More information about the Bf-blender-cvs mailing list