debug: add key event logging to trace XRecord flow
This commit is contained in:
parent
3510cd7384
commit
7898768141
1 changed files with 10 additions and 4 deletions
|
|
@ -744,17 +744,23 @@ fn run_with_x11(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait for events with 100ms timeout, then re-grab if needed
|
// Wait for events with 100ms timeout, then re-grab if needed
|
||||||
if !capture.wait_for_event(100) {
|
let got_data = capture.wait_for_event(100);
|
||||||
// No events — check if grab is still held
|
let evt = capture.next_event();
|
||||||
|
if evt.is_none() {
|
||||||
|
if got_data {
|
||||||
|
eprintln!("[vietc] DEBUG: select said data but no event in queue");
|
||||||
|
}
|
||||||
if !capture.is_grabbed() {
|
if !capture.is_grabbed() {
|
||||||
eprintln!("[vietc] Keyboard grab lost — re-grabbing");
|
eprintln!("[vietc] Keyboard grab lost — re-grabbing");
|
||||||
capture.grab_keyboard();
|
capture.grab_keyboard();
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
let event = evt.unwrap();
|
||||||
|
eprintln!("[vietc] GOT KEY EVENT: keycode={} pressed={} ch={:?} state={}", event.keycode, event.pressed, event.ch, event.state);
|
||||||
|
|
||||||
// Drain all available events
|
// Process this event
|
||||||
while let Some(event) = capture.next_event() {
|
{
|
||||||
if event.pressed {
|
if event.pressed {
|
||||||
// Skip autorepeat
|
// Skip autorepeat
|
||||||
if !pressed_keys.insert(event.keycode) {
|
if !pressed_keys.insert(event.keycode) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue