diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -287,9 +287,12 @@ // use tab title as caption by default QString caption = title; - // use window title as caption only when enabled and it is not empty - if (KonsoleSettings::showWindowTitleOnTitleBar() && !userTitle.isEmpty()) { - caption = userTitle; + // use window title as caption when this setting is enabled + // if the userTitle is empty, use a blank space (using an empty string + // removes the dash — before the application name; leaving the dash + // looks better) + if (KonsoleSettings::showWindowTitleOnTitleBar()) { + !userTitle.isEmpty() ? caption = userTitle : caption = QStringLiteral(" "); } if (KonsoleSettings::showAppNameOnTitleBar()) { diff --git a/src/Vt102Emulation.cpp b/src/Vt102Emulation.cpp --- a/src/Vt102Emulation.cpp +++ b/src/Vt102Emulation.cpp @@ -360,6 +360,12 @@ if (ces(CTL)) { + // ignore control characters in the text part of Xpe (aka OSC) "ESC]" + // escape sequences; this matches what XTERM docs say + if (Xpe) { + return; + } + // DEC HACK ALERT! Control Characters are allowed *within* esc sequences in VT100 // This means, they do neither a resetTokenizer() nor a pushToToken(). Some of them, do // of course. Guess this originates from a weakly layered handling of the X-on