mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 16:32:45 +00:00 
			
		
		
		
	Ladybird+LibCore: Use QCoreApplication to drive the main Qt event loop
Using QEventLoop works for everything but it breaks *one* little feature that we care about: automatically quitting the app when all windows have been closed. That only works if you drive the outermost main event loop with a QCoreApplication instead of a QEventLoop. This is unfortunate, as it complicates our API a little bit, but I'm sure we can think of a way to make this nicer someday. In order for QCoreApplication::exec() to process our own ThreadEventQueue, we now have a zero-timer that we kick whenever new events are posted to the thread queue.
This commit is contained in:
		
							parent
							
								
									0f22dfa634
								
							
						
					
					
						commit
						c21eb30a2b
					
				
					 9 changed files with 79 additions and 25 deletions
				
			
		|  | @ -56,6 +56,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | |||
| 
 | ||||
|     Core::EventLoop::make_implementation = Ladybird::EventLoopImplementationQt::create; | ||||
|     Core::EventLoop event_loop; | ||||
|     static_cast<Ladybird::EventLoopImplementationQt&>(event_loop.impl()).set_main_loop(); | ||||
| 
 | ||||
|     TRY(handle_attached_debugger()); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling