From 767fc8bd6bbff596e234d5fffd49ec0cdd4003d7 Mon Sep 17 00:00:00 2001 From: Ferdinand Schober Date: Mon, 8 Jan 2024 16:54:14 +0100 Subject: [PATCH] comment about pointer relase in sending state Figured out, why it sometimes happened that the pointer is released in sending state. However nothing we can do about it. (not a real issue) --- src/backend/producer/wayland.rs | 7 +++++++ src/server.rs | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backend/producer/wayland.rs b/src/backend/producer/wayland.rs index 9e15fb3..17429d7 100644 --- a/src/backend/producer/wayland.rs +++ b/src/backend/producer/wayland.rs @@ -712,6 +712,13 @@ impl Dispatch for State { app.pending_events.push_back((*client, Event::Enter())); } wl_pointer::Event::Leave { .. } => { + /* There are rare cases, where when a window is opened in + * just the wrong moment, the pointer is released, while + * still grabbed. + * In that case, the pointer must be ungrabbed, otherwise + * it is impossible to grab it again (since the pointer + * lock, relative pointer,... objects are still in place) + */ app.ungrab(); } wl_pointer::Event::Button { diff --git a/src/server.rs b/src/server.rs index 2b2270b..79ccb3c 100644 --- a/src/server.rs +++ b/src/server.rs @@ -131,7 +131,6 @@ impl Server { tokio::select! { event = producer.next() => { let event = event.ok_or(anyhow!("event producer closed"))??; - log::debug!("producer event: {event:?}"); server.handle_producer_event(&mut producer, &sender_ch, &timer_ch, event).await?; } e = producer_notify_rx.recv() => {