mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-01-25 20:11:10 +00:00
[Linux] Disabled TTY keyboard driver in favor of libinput
The TTY keyboard driver requires a robust cleanup method to avoid hogging the keyboard/console after the process exists. Without this, it does not make sense to use enable this driver.
This commit is contained in:
parent
e7bd311fbd
commit
4a53a5511a
|
@ -101,6 +101,23 @@ namespace Examples
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
Trace.Listeners.Add(new ConsoleTraceListener());
|
Trace.Listeners.Add(new ConsoleTraceListener());
|
||||||
|
using (Toolkit.Init())
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
var state = OpenTK.Input.Keyboard.GetState();
|
||||||
|
if (!state.IsConnected)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (state.IsKeyDown(OpenTK.Input.Key.Escape))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
|
||||||
Tests.GameWindowStates.Main();
|
Tests.GameWindowStates.Main();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@ namespace OpenTK.Platform.Linux
|
||||||
|
|
||||||
IJoystickDriver2 JoystickDriver;
|
IJoystickDriver2 JoystickDriver;
|
||||||
IKeyboardDriver2 KeyboardDriver;
|
IKeyboardDriver2 KeyboardDriver;
|
||||||
|
IMouseDriver2 MouseDriver;
|
||||||
|
|
||||||
const string gpu_path = "/dev/dri"; // card0, card1, ...
|
const string gpu_path = "/dev/dri"; // card0, card1, ...
|
||||||
|
|
||||||
|
@ -216,9 +217,7 @@ namespace OpenTK.Platform.Linux
|
||||||
{
|
{
|
||||||
lock (this)
|
lock (this)
|
||||||
{
|
{
|
||||||
KeyboardDriver = KeyboardDriver ??
|
KeyboardDriver = KeyboardDriver ?? new LinuxInput();
|
||||||
// Todo: use LinuxInput driver if available?
|
|
||||||
(IKeyboardDriver2)new LinuxKeyboardTTY();
|
|
||||||
return KeyboardDriver;
|
return KeyboardDriver;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,11 @@ using OpenTK.Input;
|
||||||
|
|
||||||
namespace OpenTK.Platform.Linux
|
namespace OpenTK.Platform.Linux
|
||||||
{
|
{
|
||||||
|
// Todo: this has terrible side-effects on process exit
|
||||||
|
// (the keyboard remains tied up.) We need to find a
|
||||||
|
// proper way to clean up after ourselves, even in case
|
||||||
|
// of a crash.
|
||||||
|
#if EXPERIMENTAL
|
||||||
class LinuxKeyboardTTY : IKeyboardDriver2, IDisposable
|
class LinuxKeyboardTTY : IKeyboardDriver2, IDisposable
|
||||||
{
|
{
|
||||||
const int stdin = 0; // STDIN_FILENO
|
const int stdin = 0; // STDIN_FILENO
|
||||||
|
@ -552,5 +557,6 @@ namespace OpenTK.Platform.Linux
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue