Terminal: Handle bell

Change-Id: I61681166fc8e489ffd0807cf3bcb4a2abc9cf6e1
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-03-24 17:05:08 +01:00
parent 9417f8b99e
commit ae94d3b7ea
3 changed files with 7 additions and 1 deletions

View File

@@ -68,11 +68,15 @@ struct TerminalSurfacePrivate
auto p = static_cast<TerminalSurfacePrivate *>(user);
return p->movecursor(pos, oldpos, visible);
};
m_vtermScreenCallbacks.sb_clear = [](void *user) {
auto p = static_cast<TerminalSurfacePrivate *>(user);
return p->sb_clear();
};
m_vtermScreenCallbacks.bell = [](void *user) {
auto p = static_cast<TerminalSurfacePrivate *>(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);

View File

@@ -102,6 +102,7 @@ signals:
void cursorChanged(Cursor oldCursor, Cursor newCursor);
void altscreenChanged(bool altScreen);
void unscroll();
void bell();
private:
std::unique_ptr<TerminalSurfacePrivate> d;

View File

@@ -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,