From 622b5f4c451845fb092a2126deed2dd990b27af4 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Mon, 23 Mar 2020 22:35:30 +0900 Subject: [PATCH] [qwaq] Fix the handling of overlapping views This even simplifies the logic for mouse enter/leave handling, a nice bonus. --- ruamoko/qwaq/qwaq-group.r | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/ruamoko/qwaq/qwaq-group.r b/ruamoko/qwaq/qwaq-group.r index bcfa7e375..34d7a34a7 100644 --- a/ruamoko/qwaq/qwaq-group.r +++ b/ruamoko/qwaq/qwaq-group.r @@ -137,15 +137,11 @@ find_mouse_view(Group *group, Point pos) if (mouse_grabbed) { [mouse_grabbed handleEvent: event]; } else { - if (mouse_within && ![mouse_within containsPoint: pos]) { + View *mouse_view = find_mouse_view (self, pos); + if (mouse_within != mouse_view) { [mouse_within onMouseLeave: pos]; - mouse_within = nil; - } - if (!mouse_within) { - mouse_within = find_mouse_view (self, pos); - if (mouse_within) { - [mouse_within onMouseEnter: pos]; - } + [mouse_view onMouseEnter: pos]; + mouse_within = mouse_view; } if (mouse_within) { [mouse_within handleEvent: event];