aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx/Ui/Applet/GtkHostUiHandler.cs
diff options
context:
space:
mode:
authorCaian Benedicto <caianbene@gmail.com>2021-10-12 16:54:21 -0300
committerGitHub <noreply@github.com>2021-10-12 21:54:21 +0200
commit380b95bc59e7dc419f89df951cdc086e792cb0ff (patch)
tree59a636b48db991d8e13132d7d3f41464d9b04b24 /Ryujinx/Ui/Applet/GtkHostUiHandler.cs
parent69093cf2d69490862aff974f170cee63a0016fd0 (diff)
Inline software keyboard without input pop up dialog (#2180)
* 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
Diffstat (limited to 'Ryujinx/Ui/Applet/GtkHostUiHandler.cs')
-rw-r--r--Ryujinx/Ui/Applet/GtkHostUiHandler.cs25
1 files changed, 24 insertions, 1 deletions
diff --git a/Ryujinx/Ui/Applet/GtkHostUiHandler.cs b/Ryujinx/Ui/Applet/GtkHostUiHandler.cs
index c227ebd3..d81cbe3c 100644
--- a/Ryujinx/Ui/Applet/GtkHostUiHandler.cs
+++ b/Ryujinx/Ui/Applet/GtkHostUiHandler.cs
@@ -1,10 +1,11 @@
using Gtk;
-using Ryujinx.HLE;
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
+using Ryujinx.HLE.Ui;
using Ryujinx.Ui.Widgets;
using System;
using System.Threading;
+using Action = System.Action;
namespace Ryujinx.Ui.Applet
{
@@ -12,9 +13,13 @@ namespace Ryujinx.Ui.Applet
{
private readonly Window _parent;
+ public IHostUiTheme HostUiTheme { get; }
+
public GtkHostUiHandler(Window parent)
{
_parent = parent;
+
+ HostUiTheme = new GtkHostUiTheme(parent);
}
public bool DisplayMessageDialog(ControllerAppletUiArgs args)
@@ -186,5 +191,23 @@ namespace Ryujinx.Ui.Applet
return showDetails;
}
+
+ private void SynchronousGtkInvoke(Action action)
+ {
+ var waitHandle = new ManualResetEventSlim();
+
+ Application.Invoke(delegate
+ {
+ action();
+ waitHandle.Set();
+ });
+
+ waitHandle.Wait();
+ }
+
+ public IDynamicTextInputHandler CreateDynamicTextInputHandler()
+ {
+ return new GtkDynamicTextInputHandler(_parent);
+ }
}
} \ No newline at end of file