forked from qt-creator/qt-creator
Terminal: Handle bell
Change-Id: I61681166fc8e489ffd0807cf3bcb4a2abc9cf6e1 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -68,11 +68,15 @@ struct TerminalSurfacePrivate
|
|||||||
auto p = static_cast<TerminalSurfacePrivate *>(user);
|
auto p = static_cast<TerminalSurfacePrivate *>(user);
|
||||||
return p->movecursor(pos, oldpos, visible);
|
return p->movecursor(pos, oldpos, visible);
|
||||||
};
|
};
|
||||||
|
|
||||||
m_vtermScreenCallbacks.sb_clear = [](void *user) {
|
m_vtermScreenCallbacks.sb_clear = [](void *user) {
|
||||||
auto p = static_cast<TerminalSurfacePrivate *>(user);
|
auto p = static_cast<TerminalSurfacePrivate *>(user);
|
||||||
return p->sb_clear();
|
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_callbacks(m_vtermScreen, &m_vtermScreenCallbacks, this);
|
||||||
vterm_screen_set_damage_merge(m_vtermScreen, VTERM_DAMAGE_SCROLL);
|
vterm_screen_set_damage_merge(m_vtermScreen, VTERM_DAMAGE_SCROLL);
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ signals:
|
|||||||
void cursorChanged(Cursor oldCursor, Cursor newCursor);
|
void cursorChanged(Cursor oldCursor, Cursor newCursor);
|
||||||
void altscreenChanged(bool altScreen);
|
void altscreenChanged(bool altScreen);
|
||||||
void unscroll();
|
void unscroll();
|
||||||
|
void bell();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<TerminalSurfacePrivate> d;
|
std::unique_ptr<TerminalSurfacePrivate> d;
|
||||||
|
|||||||
@@ -332,6 +332,7 @@ void TerminalWidget::setupSurface()
|
|||||||
connect(m_surface.get(), &Internal::TerminalSurface::unscroll, this, [this] {
|
connect(m_surface.get(), &Internal::TerminalSurface::unscroll, this, [this] {
|
||||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||||
});
|
});
|
||||||
|
connect(m_surface.get(), &Internal::TerminalSurface::bell, this, [] { QApplication::beep(); });
|
||||||
if (m_shellIntegration) {
|
if (m_shellIntegration) {
|
||||||
connect(m_shellIntegration.get(),
|
connect(m_shellIntegration.get(),
|
||||||
&ShellIntegration::commandChanged,
|
&ShellIntegration::commandChanged,
|
||||||
|
|||||||
Reference in New Issue
Block a user