diff --git a/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.cpp b/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.cpp index 425adc29c..1a1eec5ba 100644 --- a/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.cpp +++ b/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.cpp @@ -36,8 +36,14 @@ void BridgeTerminalsCommand::undo() void BridgeTerminalsCommand::redo() { - if (m_strip) { - m_strip->setBridge(m_real_terminal_vector); + if (m_strip) + { + if (m_bridge) { + m_strip->setBridge(m_bridge, m_real_terminal_vector); + } else { + m_strip->setBridge(m_real_terminal_vector); + m_bridge = m_strip->isBridged(m_real_terminal_vector.first()); + } } } diff --git a/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.h b/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.h index ec1fcfef4..a642a869e 100644 --- a/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.h +++ b/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.h @@ -42,6 +42,7 @@ class BridgeTerminalsCommand : public QUndoCommand private: QPointer m_strip; QVector> m_real_terminal_vector; + QSharedPointer m_bridge; };