 380b95bc59
			
		
	
	
		380b95bc59
		
			
		
	
	
	
	
		
			
			* Initial implementation * Refactor dynamic text input keys out to facilitate configuration via UI * Fix code styling * Add per applet indirect layer handles * Remove static functions from SoftwareKeyboardRenderer * Remove inline keyboard reset delay * Remove inline keyboard V2 responses * Add inline keyboard soft-lock recovering * Add comments * Forward accept and cancel key names to the keyboard and add soft-lock prevention line * Add dummy window to handle paste events * Rework inline keyboard state machine and graphics * Implement IHostUiHandler interfaces on headless WindowBase class * Add inline keyboard assets * Fix coding style * Fix coding style * Change mode cycling shortcut to F6 * Fix invalid calc size error in games using extended calc * Remove unnecessary namespaces
		
			
				
	
	
		
			42 lines
		
	
	
		
			No EOL
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			No EOL
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Ryujinx.HLE.HOS.Kernel.Threading;
 | |
| using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy;
 | |
| using System.Collections.Concurrent;
 | |
| 
 | |
| namespace Ryujinx.HLE.HOS.SystemState
 | |
| {
 | |
|     class AppletStateMgr
 | |
|     {
 | |
|         public ConcurrentQueue<AppletMessage> Messages { get; }
 | |
| 
 | |
|         public FocusState FocusState { get; private set; }
 | |
| 
 | |
|         public KEvent MessageEvent { get; }
 | |
| 
 | |
|         public IdDictionary AppletResourceUserIds { get; }
 | |
| 
 | |
|         public IdDictionary IndirectLayerHandles { get; }
 | |
| 
 | |
|         public AppletStateMgr(Horizon system)
 | |
|         {
 | |
|             Messages     = new ConcurrentQueue<AppletMessage>();
 | |
|             MessageEvent = new KEvent(system.KernelContext);
 | |
| 
 | |
|             AppletResourceUserIds = new IdDictionary();
 | |
|             IndirectLayerHandles = new IdDictionary();
 | |
|         }
 | |
| 
 | |
|         public void SetFocus(bool isFocused)
 | |
|         {
 | |
|             FocusState = isFocused ? FocusState.InFocus : FocusState.OutOfFocus;
 | |
| 
 | |
|             Messages.Enqueue(AppletMessage.FocusStateChanged);
 | |
| 
 | |
|             if (isFocused)
 | |
|             {
 | |
|                 Messages.Enqueue(AppletMessage.ChangeIntoForeground);
 | |
|             }
 | |
| 
 | |
|             MessageEvent.ReadableEvent.Signal();
 | |
|         }
 | |
|     }
 | |
| } |