Commit 606a55cb authored by Christian Persch's avatar Christian Persch

widget: Emit the ::commit signal even when the terminal has no PTY

Some users drive VteTerminal entirely with vte_terminal_feed/feed_child(),
e.g. qemu, and they rely on the ::commit signal to read the user input.
So for now, restore the signal emission.

Fixes: #222
(cherry picked from commit 277ee003)
parent bc236109
......@@ -4154,22 +4154,23 @@ Terminal::send_child(std::string_view const& data)
if (!m_input_enabled)
return;
/* If there's a place for it to go, add the data to the
* outgoing buffer. */
if (!pty())
return;
/* Note that for backward compatibility, we need to emit the
* ::commit signal even if there is no PTY. See issue vte#222.
*/
switch (data_syntax()) {
case DataSyntax::eECMA48_UTF8:
emit_commit(data);
_vte_byte_array_append(m_outgoing, data.data(), data.size());
if (pty())
_vte_byte_array_append(m_outgoing, data.data(), data.size());
break;
case DataSyntax::eECMA48_PCTERM: {
auto converted = m_converter->convert(data);
emit_commit(converted);
_vte_byte_array_append(m_outgoing, converted.data(), converted.size());
if (pty())
_vte_byte_array_append(m_outgoing, converted.data(), converted.size());
break;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment