 ea33fc04ab
			
		
	
	
		ea33fc04ab
		
			
		
	
	
	
	
		
			
			# Objective Define a framework for handling keyboard focus and bubbled keyboard events, as discussed in #15374. ## Solution Introduces a new crate, `bevy_input_focus`. This crate provides: * A resource for tracking which entity has keyboard focus. * Methods for getting and setting keyboard focus. * Event definitions for triggering bubble-able keyboard input events to the focused entity. * A system for dispatching keyboard input events to the focused entity. This crate does *not* provide any integration with UI widgets, or provide functions for tab navigation or gamepad-based focus navigation, as those are typically application-specific. ## Testing Most of the code has been copied from a different project, one that has been well tested. However, most of what's in this module consists of type definitions, with relatively small amounts of executable code. That being said, I expect that there will be substantial bikeshedding on the design, and I would prefer to hold off writing tests until after things have settled. I think that an example would be appropriate, however I'm waiting on a few other pending changes to Bevy before doing so. In particular, I can see a simple example with four buttons, with focus navigation between them, and which can be triggered by the keyboard. @alice-i-cecile
		
			
				
	
	
		
			8 lines
		
	
	
		
			635 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			8 lines
		
	
	
		
			635 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Bevy Input Focus
 | |
| 
 | |
| [](https://github.com/bevyengine/bevy#license)
 | |
| [](https://crates.io/crates/bevy_input_focus)
 | |
| [](https://crates.io/crates/bevy_input_focus)
 | |
| [](https://docs.rs/bevy_input_focus/latest/bevy_input_focus/)
 | |
| [](https://discord.gg/bevy)
 |