4
4
<br />
5
5
<div class =" preview" :class =" { light, dark: !light }" >
6
6
<div class =" preview-head" >
7
+ <span v-if =" !elements.windowTitleSet" >Terminal</span >
7
8
<span v-for =" element in elements.windowTitle" :key =" element.id" >
8
9
{{ element.data.type.preview(element.data.parameters) }}
9
10
</span >
11
+ <span >  ; </span > <!-- Ensure there is at least one character even if the title is empty -->
10
12
<span class =" preview-window-controls" >
11
13
<MinusCircleIcon class =" icon" ></MinusCircleIcon >
12
14
<XCircleIcon class =" icon" ></XCircleIcon >
@@ -141,6 +143,7 @@ export default defineComponent({
141
143
};
142
144
// whether an operating system command ('Set Window Title') has been encountered and awaits an ending bell
143
145
let operatingSystemCommand: boolean = false ;
146
+ let windowTitleSet: boolean = false ;
144
147
145
148
while (elements .length > 0 ) {
146
149
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -151,6 +154,7 @@ export default defineComponent({
151
154
// any previous window title is overwritten by the new one
152
155
crPartitions .windowTitle = [[]];
153
156
operatingSystemCommand = true ;
157
+ windowTitleSet = true ;
154
158
} else if (element .data .type .name === ' Bell' && operatingSystemCommand ) {
155
159
operatingSystemCommand = false ;
156
160
} else if (operatingSystemCommand ) {
@@ -165,6 +169,7 @@ export default defineComponent({
165
169
return {
166
170
prompt: crPartitions .prompt .reduce (mergeCrPartitions ),
167
171
windowTitle: crPartitions .windowTitle .reduce (mergeCrPartitions ),
172
+ windowTitleSet
168
173
};
169
174
},
170
175
},
242
247
.icon
243
248
margin : 0 0.1em
244
249
height : 1.2em
245
- vertical-align : middle
246
-
250
+ vertical-align : text-bottom
247
251
248
252
.preview-body
249
253
padding : 1em
0 commit comments