mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-11-04 13:38:14 +08:00 
			
		
		
		
	Make catching SIGNAL SIGINT to work also on windows.
This commit is contained in:
		@@ -176,6 +176,11 @@ void ScreenInteractive::PostEvent(Event event) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ScreenInteractive::Loop(Component* component) {
 | 
			
		||||
  // Install a SIGINT handler and restore the old handler on exit.
 | 
			
		||||
  auto old_sigint_handler = std::signal(SIGINT, OnExit);
 | 
			
		||||
  on_exit_functions.push(
 | 
			
		||||
      [old_sigint_handler]() { std::signal(SIGINT, old_sigint_handler); });
 | 
			
		||||
 | 
			
		||||
  // Save the old terminal configuration and restore it on exit.
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
  // Enable VT processing on stdout and stdin
 | 
			
		||||
@@ -211,11 +216,6 @@ void ScreenInteractive::Loop(Component* component) {
 | 
			
		||||
  // Handle resize.
 | 
			
		||||
  on_resize = [&] { event_sender_->Send(Event::Special({0})); };
 | 
			
		||||
  install_signal_handler(SIGWINCH, OnResize);
 | 
			
		||||
 | 
			
		||||
  // Install a SIGINT handler and restore the old handler on exit.
 | 
			
		||||
  auto old_sigint_handler = std::signal(SIGINT, OnExit);
 | 
			
		||||
  on_exit_functions.push(
 | 
			
		||||
      [old_sigint_handler]() { std::signal(SIGINT, old_sigint_handler); });
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  // Hide the cursor and show it at exit.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user