@@ -55,7 +55,11 @@ async function store(state, emitter) {
55
55
state . panelHeight = PANEL_CLOSED
56
56
state . resizePanel = function ( e ) {
57
57
state . panelHeight = ( PANEL_CLOSED / 2 ) + document . body . clientHeight - e . clientY
58
- state . savedPanelHeight = state . panelHeight
58
+ if ( state . panelHeight <= PANEL_CLOSED ) {
59
+ state . savedPanelHeight = PANEL_DEFAULT
60
+ } else {
61
+ state . savedPanelHeight = state . panelHeight
62
+ }
59
63
emitter . emit ( 'render' )
60
64
}
61
65
@@ -195,13 +199,15 @@ async function store(state, emitter) {
195
199
196
200
// PANEL
197
201
emitter . on ( 'open-panel' , ( ) => {
202
+ emitter . emit ( 'stop-resizing-panel' )
198
203
state . panelHeight = state . savedPanelHeight
199
204
emitter . emit ( 'render' )
200
205
setTimeout ( ( ) => {
201
206
state . cache ( XTerm , 'terminal' ) . resizeTerm ( )
202
207
} , 200 )
203
208
} )
204
209
emitter . on ( 'close-panel' , ( ) => {
210
+ emitter . emit ( 'stop-resizing-panel' )
205
211
state . savedPanelHeight = state . panelHeight
206
212
state . panelHeight = 0
207
213
emitter . emit ( 'render' )
@@ -212,6 +218,13 @@ async function store(state, emitter) {
212
218
emitter . on ( 'start-resizing-panel' , ( ) => {
213
219
log ( 'start-resizing-panel' )
214
220
window . addEventListener ( 'mousemove' , state . resizePanel )
221
+ // Stop resizing when mouse leaves window or enters the tabs area
222
+ document . body . addEventListener ( 'mouseleave' , ( ) => {
223
+ emitter . emit ( 'stop-resizing-panel' )
224
+ } , { once : true } )
225
+ document . querySelector ( '#tabs' ) . addEventListener ( 'mouseenter' , ( ) => {
226
+ emitter . emit ( 'stop-resizing-panel' )
227
+ } , { once : true } )
215
228
} )
216
229
emitter . on ( 'stop-resizing-panel' , ( ) => {
217
230
log ( 'stop-resizing-panel' )
0 commit comments