feat(client-linux): log the release/disconnect keyboard chords
android / android (push) Has been cancelled
apple / screenshots (push) Has been cancelled
apple / swift (push) Has been cancelled
arch / build-publish (push) Has been cancelled
ci / docs-site (push) Has been cancelled
ci / bench (push) Has been cancelled
ci / web (push) Has been cancelled
ci / rust (push) Has been cancelled
deb / build-publish (push) Has been cancelled
decky / build-publish (push) Has been cancelled
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Has been cancelled
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Has been cancelled
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Has been cancelled
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Has been cancelled
docker / deploy-docs (push) Has been cancelled
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Has been cancelled
flatpak / build-publish (push) Has been cancelled
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Has been cancelled
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Has been cancelled
android / android (push) Has been cancelled
apple / screenshots (push) Has been cancelled
apple / swift (push) Has been cancelled
arch / build-publish (push) Has been cancelled
ci / docs-site (push) Has been cancelled
ci / bench (push) Has been cancelled
ci / web (push) Has been cancelled
ci / rust (push) Has been cancelled
deb / build-publish (push) Has been cancelled
decky / build-publish (push) Has been cancelled
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Has been cancelled
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Has been cancelled
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Has been cancelled
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Has been cancelled
docker / deploy-docs (push) Has been cancelled
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Has been cancelled
flatpak / build-publish (push) Has been cancelled
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Has been cancelled
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Has been cancelled
The Ctrl+Alt+Shift+Q/D handlers had no tracing, so a report of "the disconnect shortcut doesn't work" was unverifiable from logs alone — live tracing (added temporarily, then trimmed to these two lines) showed the chord, `disconnect_quit()`, and the session teardown all firing correctly and instantly every time; the confusion traced back to the (now-fixed) FlowBox click crash having kept everyone from ever reaching a live session to test the shortcut with in the first place. Keep the two low-noise, deliberate-action log lines for the next time this comes up; drop the per-keystroke debug trace used to diagnose it, which would otherwise fire on every key during a stream. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -806,6 +806,7 @@ fn attach_keyboard(
|
|||||||
| gdk::ModifierType::ALT_MASK
|
| gdk::ModifierType::ALT_MASK
|
||||||
| gdk::ModifierType::SHIFT_MASK;
|
| gdk::ModifierType::SHIFT_MASK;
|
||||||
if state.contains(chord) && keyval.to_lower() == gdk::Key::q {
|
if state.contains(chord) && keyval.to_lower() == gdk::Key::q {
|
||||||
|
tracing::info!(captured = cap.captured.get(), "chord: Ctrl+Alt+Shift+Q (release/engage)");
|
||||||
if cap.captured.get() {
|
if cap.captured.get() {
|
||||||
cap.release();
|
cap.release();
|
||||||
} else {
|
} else {
|
||||||
@@ -816,6 +817,7 @@ fn attach_keyboard(
|
|||||||
// Ctrl+Alt+Shift+D — leave the session. Now that Steam / QAM pass through to the host,
|
// Ctrl+Alt+Shift+D — leave the session. Now that Steam / QAM pass through to the host,
|
||||||
// the capture toggle alone can't end a stream, so this is the keyboard's explicit exit.
|
// the capture toggle alone can't end a stream, so this is the keyboard's explicit exit.
|
||||||
if state.contains(chord) && keyval.to_lower() == gdk::Key::d {
|
if state.contains(chord) && keyval.to_lower() == gdk::Key::d {
|
||||||
|
tracing::info!("chord: Ctrl+Alt+Shift+D (disconnect) — releasing capture + quitting");
|
||||||
cap.release();
|
cap.release();
|
||||||
// Deliberate user exit → close with QUIT_CLOSE_CODE so the host tears the session down
|
// Deliberate user exit → close with QUIT_CLOSE_CODE so the host tears the session down
|
||||||
// immediately instead of holding the keep-alive linger for a reconnect.
|
// immediately instead of holding the keep-alive linger for a reconnect.
|
||||||
|
|||||||
Reference in New Issue
Block a user