Repository: Qiskit/qiskit

Issue:
text drawer: gap between gates
<!-- ⚠️ If you do not respect this template, your issue will be closed -->
<!-- ⚠️ Make sure to browse the opened and closed issues -->

### Information

- **Qiskit Terra version**: master
- **Python version**:
- **Operating system**:

### What is the current behavior?

This circuit
```
OPENQASM 2.0;
include "qelib1.inc";
qreg q[7];
h q[0];
swap q[0],q[1];
cx q[2],q[3];
rz(0.100000000000000) q[2];
swap q[1],q[2];
swap q[2],q[3];
cx q[3],q[4];
swap q[5],q[4];
cx q[4],q[3];
cx q[4],q[3];
swap q[6],q[5];
swap q[5],q[4];
swap q[4],q[3];
swap q[3],q[2];
swap q[2],q[1];
cx q[1],q[0];

```

draws as 
```
        ┌───┐                                               ┌───┐
q_0: |0>┤ H ├    ─X─    ────────────────────────────────────┤ X ├
        └───┘     │                                         └─┬─┘
q_1: |0>─────    ─X─    ─X────────────────────────────────X───■──
             ┌─────────┐ │                                │      
q_2: |0>──■──┤ Rz(0.1) ├─X──X──────────────────────────X──X──────
        ┌─┴─┐└─────────┘    │         ┌───┐┌───┐       │         
q_3: |0>┤ X ├───────────────X───■─────┤ X ├┤ X ├────X──X─────────
        └───┘                 ┌─┴─┐   └─┬─┘└─┬─┘    │            
q_4: |0>──────────────────────┤ X ├─X───■────■───X──X────────────
                              └───┘ │            │               
q_5: |0>────────────────────────────X─ ─X─ ──────X───────────────
                                        │                        
q_6: |0>────────────────────────────── ─X─ ──────────────────────
                                                                 
```


Discussion:

Resolving patch:
diff --git a/qiskit/visualization/text.py b/qiskit/visualization/text.py
--- a/qiskit/visualization/text.py
+++ b/qiskit/visualization/text.py
@@ -309,7 +309,7 @@ def __init__(self, label=""):
         self.top_format = ' %s '
         self.mid_format = '─%s─'
         self.bot_format = ' %s '
-        self._mid_padding = '─'
+        self._mid_padding = self.mid_bck = '─'
         self.top_connector = {"│": '│'}
         self.bot_connector = {"│": '│'}
 


Test patch:
diff --git a/test/python/visualization/references/circuit_text_ref.txt b/test/python/visualization/references/circuit_text_ref.txt
--- a/test/python/visualization/references/circuit_text_ref.txt
+++ b/test/python/visualization/references/circuit_text_ref.txt
@@ -1,9 +1,9 @@
         ┌───┐┌───┐┌───┐ ░ ┌───┐┌───┐┌─────┐┌───┐┌─────┐┌────┐     ┌────────────┐┌────────────┐┌────────────┐┌────────────┐┌────────────┐┌───────────────────┐┌──────────────────────────┐                                                                                ┌─┐      
 q_0: |0>┤ X ├┤ Y ├┤ Z ├─░─┤ H ├┤ S ├┤ Sdg ├┤ T ├┤ Tdg ├┤ Id ├─|0>─┤ Rx(3.1416) ├┤ Ry(3.1416) ├┤ Rz(3.1416) ├┤ U0(3.1416) ├┤ U1(3.1416) ├┤ U2(3.1416,3.1416) ├┤ U3(3.1416,3.1416,3.1416) ├─X───■────■───■───■───■────────────────────■────────────────────■─────────■───■─┤M├──────
         └─░─┘└───┘└───┘ ░ └───┘└───┘└─────┘└───┘└─────┘└────┘     └────────────┘└────────────┘└────────────┘└────────────┘└────────────┘└───────────────────┘└──────────────────────────┘ │ ┌─┴─┐┌─┴─┐ │ ┌─┴─┐ │3.1416 ┌────────────┴─────────────┐┌─────┴──────┐  │   │ └╥┘┌─┐   
-q_1: |0> ─░─ ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────X─┤ X ├┤ Y ├─■─┤ H ├─■───────┤ U3(3.1416,3.1416,3.1416) ├┤ Rz(3.1416) ├──■───X──╫─┤M├───
+q_1: |0>──░───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────X─┤ X ├┤ Y ├─■─┤ H ├─■───────┤ U3(3.1416,3.1416,3.1416) ├┤ Rz(3.1416) ├──■───X──╫─┤M├───
           ░                                                                                                                                                                                 └───┘└───┘   └───┘         └──────────────────────────┘└────────────┘┌─┴─┐ │  ║ └╥┘┌─┐
-q_2: |0> ─░─ ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ X ├─X──╫──╫─┤M├
+q_2: |0>──░──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ X ├─X──╫──╫─┤M├
           ░                                                                                                                                                                                                                                                      └───┘    ║  ║ └╥┘
  c_0: 0 ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╩══╬══╬═
                                                                                                                                                                                                                                                                              ║  ║ 
diff --git a/test/python/visualization/test_circuit_text_drawer.py b/test/python/visualization/test_circuit_text_drawer.py
--- a/test/python/visualization/test_circuit_text_drawer.py
+++ b/test/python/visualization/test_circuit_text_drawer.py
@@ -880,6 +880,22 @@ def test_text_box_length(self):
         circuit.u1(0.0000001, qr[2])
         self.assertEqual(str(_text_circuit_drawer(circuit)), expected)
 
+    def test_text_spacing_2378(self):
+        """Small gates in the same layer as long gates.
+        See https://github.com/Qiskit/qiskit-terra/issues/2378"""
+        expected = '\n'.join(["                     ",
+                              "q_0: |0>──────X──────",
+                              "              │      ",
+                              "q_1: |0>──────X──────",
+                              "        ┌───────────┐",
+                              "q_2: |0>┤ Rz(11111) ├",
+                              "        └───────────┘"])
+        qr = QuantumRegister(3, 'q')
+        circuit = QuantumCircuit(qr)
+        circuit.swap(qr[0], qr[1])
+        circuit.rz(11111, qr[2])
+        self.assertEqual(str(_text_circuit_drawer(circuit)), expected)
+
 
 class TestTextDrawerMultiQGates(QiskitTestCase):
     """ Gates impling multiple qubits."""