mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	fix(tui): don't process UI events when suspending or stopping (#33710)
When the TUI is suspending or stopping, redraw events should not be
processed, as when it next processes redraw events it's already waiting
for a DA1 response after having disabled some terminal modes.
Fix #33708
(cherry picked from commit c35dde03c8)
			
			
This commit is contained in:
		 zeertzjq
					zeertzjq
				
			
				
					committed by
					
						![github-actions[bot]](/assets/img/avatar_default.png) github-actions[bot]
						github-actions[bot]
					
				
			
			
				
	
			
			
			![github-actions[bot]](/assets/img/avatar_default.png) github-actions[bot]
						github-actions[bot]
					
				
			
						parent
						
							f9c7a69cec
						
					
				
				
					commit
					4296511087
				
			| @@ -247,8 +247,7 @@ static void parse_msgpack(Channel *channel) | ||||
|   Unpacker *p = channel->rpc.unpacker; | ||||
|   while (unpacker_advance(p)) { | ||||
|     if (p->type == kMessageTypeRedrawEvent) { | ||||
|       // When exiting, ui_client_stop() has already been called, so don't handle UI events. | ||||
|       if (ui_client_channel_id && !exiting) { | ||||
|       if (ui_client_attached) { | ||||
|         if (p->has_grid_line_event) { | ||||
|           ui_client_event_raw_line(&p->grid_line_event); | ||||
|           p->has_grid_line_event = false; | ||||
|   | ||||
| @@ -186,6 +186,7 @@ void ui_client_run(bool remote_ui) | ||||
|  | ||||
| void ui_client_stop(void) | ||||
| { | ||||
|   ui_client_attached = false; | ||||
|   if (!tui_is_stopped(tui)) { | ||||
|     tui_stop(tui); | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user