From b748c4186daaaaedbe044f9542f2fbcad39cf2aa Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Fri, 27 Apr 2018 14:10:45 +0200 Subject: [PATCH] nitpicker: deliver pointer pos on hover change This way, a client is able to respond to the initial movement into the view area. --- repos/os/src/server/nitpicker/user_state.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/repos/os/src/server/nitpicker/user_state.cc b/repos/os/src/server/nitpicker/user_state.cc index 8aecf70c13..9a6814e1eb 100644 --- a/repos/os/src/server/nitpicker/user_state.cc +++ b/repos/os/src/server/nitpicker/user_state.cc @@ -129,12 +129,18 @@ void User_state::_handle_input_event(Input::Event ev) View_owner * const hovered = pointed_view ? &pointed_view->owner() : 0; /* - * Deliver a leave event if pointed-to session changed + * Deliver a leave event if pointed-to session changed, notify newly + * hovered session about the current pointer position. */ - if (_hovered && (hovered != _hovered)) - _hovered->submit_input_event(Hover_leave()); + if (hovered != _hovered) { + if (_hovered) + _hovered->submit_input_event(Hover_leave()); - _hovered = hovered; + if (hovered && _key_cnt == 0) + hovered->submit_input_event(Absolute_motion{_pointer_pos.x(), + _pointer_pos.y()}); + _hovered = hovered; + } /* * Handle start of a key sequence