From 8d50d320e237106083fb820002f7a680ff7e5a66 Mon Sep 17 00:00:00 2001
From: Norman Feske <norman.feske@genode-labs.com>
Date: Mon, 4 Nov 2024 16:42:13 +0100
Subject: [PATCH] nitpicker: drop superfluous abs motion events

This patch fixes focus-follows-mouse problem reported for Sculpt 24.10
when using no (operational) backdrop.

In the absence of a background, nitpicker wrongly delivered absolute
motion events to the most recently hovered client even after leaving the
client's area to a area occupied by no client. These motion events, in
turn, confused the internal consistency of the window managers
enter/leave tracking.

Fixes #5375
---
 repos/os/src/server/nitpicker/user_state.cc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/repos/os/src/server/nitpicker/user_state.cc b/repos/os/src/server/nitpicker/user_state.cc
index c1a7617c0c..6a7360e7fd 100644
--- a/repos/os/src/server/nitpicker/user_state.cc
+++ b/repos/os/src/server/nitpicker/user_state.cc
@@ -257,6 +257,8 @@ void User_state::_handle_input_event(Input::Event ev)
 		View_owner *receiver = _input_receiver;
 
 		if (_key_cnt == 0 && _hovered) {
+			if (ev.absolute_motion())
+				receiver = nullptr;
 			/*
 			 * Unless the domain of the pointed session is configured to
 			 * always receive hover events, we deliver motion events only