fix: handle EINTR in evdev loop, silence SelectionRequest log spam
This commit is contained in:
parent
db140c3ca6
commit
58ff9e145e
2 changed files with 11 additions and 5 deletions
|
|
@ -1150,7 +1150,16 @@ fn run_with_evdev(
|
|||
.get_key_state()
|
||||
.ok()
|
||||
.unwrap_or_else(evdev::AttributeSet::new);
|
||||
let events = device.fetch_events()?;
|
||||
let events = match device.fetch_events() {
|
||||
Ok(events) => events,
|
||||
Err(e) => {
|
||||
if e.kind() == std::io::ErrorKind::Interrupted {
|
||||
// SIGINT/SIGTERM received — loop back to signal check
|
||||
continue;
|
||||
}
|
||||
return Err(e.into());
|
||||
}
|
||||
};
|
||||
last_event_time = std::time::Instant::now();
|
||||
|
||||
// Check for status changes instantly
|
||||
|
|
|
|||
|
|
@ -312,10 +312,7 @@ impl X11Injector {
|
|||
}
|
||||
|
||||
fn handle_selection_request(&self, req: &XSelectionRequestEvent) {
|
||||
eprintln!(
|
||||
"[vietc] SelectionRequest: target={} requestor={}",
|
||||
req.target, req.requestor
|
||||
);
|
||||
// Silently handle — SelectionRequest floods the log on X11
|
||||
|
||||
// Determine what property to use for the response
|
||||
let property = if req.property == 0 {
|
||||
|
|
|
|||
Loading…
Reference in a new issue