From 931116443984f7dc606af828651cec59cb8086b5 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 10 Apr 2019 02:08:32 +0200 Subject: [PATCH] GWidget: Make hit testing respect child z-order. This was as simple as iterating the children in reverse order. Duh. :^) --- LibGUI/GWidget.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/LibGUI/GWidget.cpp b/LibGUI/GWidget.cpp index b02bf059f2..b8c52cd6b9 100644 --- a/LibGUI/GWidget.cpp +++ b/LibGUI/GWidget.cpp @@ -282,11 +282,10 @@ Rect GWidget::screen_relative_rect() const GWidget::HitTestResult GWidget::hit_test(int x, int y) { - // FIXME: Care about z-order. - for (auto* ch : children()) { - if (!ch->is_widget()) + for (int i = children().size() - 1; i >= 0; --i) { + if (!children()[i]->is_widget()) continue; - auto& child = *(GWidget*)ch; + auto& child = *(GWidget*)children()[i]; if (!child.is_visible()) continue; if (child.relative_rect().contains(x, y))