diff --git a/repos/gems/src/server/wm/nitpicker.h b/repos/gems/src/server/wm/nitpicker.h index ff9cf3d6d4..713f85202e 100644 --- a/repos/gems/src/server/wm/nitpicker.h +++ b/repos/gems/src/server/wm/nitpicker.h @@ -612,8 +612,10 @@ class Wm::Nitpicker::Session_component : public Rpc_object, if (ev.release() && _key_cnt == 0) _click_handler.handle_enter(_pointer_pos); - if (ev.hover_leave()) + if (ev.hover_leave()) { + _pointer_pos = _initial_pointer_pos; _first_motion = true; + } /* submit event to the client */ _input_session.submit(_translate_event(ev, input_origin)); @@ -626,6 +628,9 @@ class Wm::Nitpicker::Session_component : public Rpc_object, */ void input_origin_changed() override { + if (_pointer_pos == _initial_pointer_pos) + return; + Point const pos = _pointer_pos + _input_origin(); _input_session.submit(Input::Absolute_motion { pos.x(), pos.y() });