diff --git a/repos/dde_linux/src/lib/usb/input/input_component.cc b/repos/dde_linux/src/lib/usb/input/input_component.cc index 88027b050..1e9a75110 100644 --- a/repos/dde_linux/src/lib/usb/input/input_component.cc +++ b/repos/dde_linux/src/lib/usb/input/input_component.cc @@ -65,13 +65,9 @@ static void input_callback(enum input_event_type type, case EVENT_TYPE_WHEEL: t = Input::Event::WHEEL; break; } - try { - input_session().submit(Input::Event(t, code, - absolute_x, absolute_y, - relative_x, relative_y)); - } catch (Input::Event_queue::Overflow) { - PWRN("input ring buffer overflow"); - } + input_session().submit(Input::Event(t, code, + absolute_x, absolute_y, + relative_x, relative_y)); } diff --git a/repos/gems/src/server/wm/nitpicker.h b/repos/gems/src/server/wm/nitpicker.h index 579906edc..047b2353f 100644 --- a/repos/gems/src/server/wm/nitpicker.h +++ b/repos/gems/src/server/wm/nitpicker.h @@ -501,22 +501,14 @@ class Wm::Nitpicker::Session_component : public Genode::Rpc_object, Input::Event const * const events = _nitpicker_input_ds.local_addr(); - try { - while (_nitpicker_input.is_pending()) { + while (_nitpicker_input.is_pending()) { - size_t const num_events = _nitpicker_input.flush(); + size_t const num_events = _nitpicker_input.flush(); - /* we trust nitpicker to return a valid number of events */ + /* we trust nitpicker to return a valid number of events */ - for (size_t i = 0; i < num_events; i++) - _input_session.submit(_translate_event(events[i], input_origin)); - } - } catch (Input::Event_queue::Overflow) { - - PWRN("client \"%s\" does not respond to user input", - _session_label.string()); - - _input_session.event_queue().reset(); + for (size_t i = 0; i < num_events; i++) + _input_session.submit(_translate_event(events[i], input_origin)); } } diff --git a/repos/os/include/input/component.h b/repos/os/include/input/component.h index 3fceef878..a38d91526 100644 --- a/repos/os/include/input/component.h +++ b/repos/os/include/input/component.h @@ -43,10 +43,16 @@ class Input::Session_component : public Genode::Rpc_object /** * Submit input event to event queue - * - * \throw Input::Event_queue::Overflow */ - void submit(Input::Event event) { _event_queue.add(event); } + void submit(Input::Event event) + { + try { + _event_queue.add(event); + } catch (Input::Event_queue::Overflow) { + PWRN("input overflow - resetting queue"); + _event_queue.reset(); + } + } /******************************