mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 08:32:43 +00:00 
			
		
		
		
	LibCore+LibGUI+WindowServer: Make events bubble up through ancestors
With this patch, CEvents no longer stop at the target object, but will bubble up the ancestor chain as long as CEvent::is_accepted() is false. To the set accepted flag, call CEvent::accept(). To clear the accepted flag, call CEvent::ignore(). Events start out in the accepted state, so if you want them to bubble up, you have to call ignore() on them. Using this mechanism, we now ignore non-tabbing keydown events in GWidget, causing them to bubble up through the widget's ancestors. :^)
This commit is contained in:
		
							parent
							
								
									74c4e62659
								
							
						
					
					
						commit
						fcc3745b02
					
				
					 9 changed files with 54 additions and 17 deletions
				
			
		|  | @ -178,7 +178,8 @@ void WSWindow::event(CEvent& event) | |||
| { | ||||
|     if (!m_client) { | ||||
|         ASSERT(parent()); | ||||
|         return parent()->event(event); | ||||
|         event.ignore(); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     if (is_blocked_by_modal_window()) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling