From ae94d3b7ea71e7ba5b0c0f6e1dcfb1a466925b38 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Fri, 24 Mar 2023 17:05:08 +0100 Subject: [PATCH] Terminal: Handle bell Change-Id: I61681166fc8e489ffd0807cf3bcb4a2abc9cf6e1 Reviewed-by: Cristian Adam --- src/plugins/terminal/terminalsurface.cpp | 6 +++++- src/plugins/terminal/terminalsurface.h | 1 + src/plugins/terminal/terminalwidget.cpp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/terminal/terminalsurface.cpp b/src/plugins/terminal/terminalsurface.cpp index 83749596c38..01b1f2c2aae 100644 --- a/src/plugins/terminal/terminalsurface.cpp +++ b/src/plugins/terminal/terminalsurface.cpp @@ -68,11 +68,15 @@ struct TerminalSurfacePrivate auto p = static_cast(user); return p->movecursor(pos, oldpos, visible); }; - m_vtermScreenCallbacks.sb_clear = [](void *user) { auto p = static_cast(user); return p->sb_clear(); }; + m_vtermScreenCallbacks.bell = [](void *user) { + auto p = static_cast(user); + emit p->q->bell(); + return 1; + }; vterm_screen_set_callbacks(m_vtermScreen, &m_vtermScreenCallbacks, this); vterm_screen_set_damage_merge(m_vtermScreen, VTERM_DAMAGE_SCROLL); diff --git a/src/plugins/terminal/terminalsurface.h b/src/plugins/terminal/terminalsurface.h index 01923fb538f..a6fc7425d48 100644 --- a/src/plugins/terminal/terminalsurface.h +++ b/src/plugins/terminal/terminalsurface.h @@ -102,6 +102,7 @@ signals: void cursorChanged(Cursor oldCursor, Cursor newCursor); void altscreenChanged(bool altScreen); void unscroll(); + void bell(); private: std::unique_ptr d; diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index 07080ea23f9..bb2f5e210ac 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -332,6 +332,7 @@ void TerminalWidget::setupSurface() connect(m_surface.get(), &Internal::TerminalSurface::unscroll, this, [this] { verticalScrollBar()->setValue(verticalScrollBar()->maximum()); }); + connect(m_surface.get(), &Internal::TerminalSurface::bell, this, [] { QApplication::beep(); }); if (m_shellIntegration) { connect(m_shellIntegration.get(), &ShellIntegration::commandChanged,