Skip to content
Browse files

[X11] Warn when XI2Mouse is not supported.

Without the XI2 extension, mouse support will suffer significantly.
More specifically, low-level mouse events will not be available.
  • Loading branch information...
1 parent 3febb4d commit 452d61bc60a3912af4eef9761d85efc7762e6c74 @thefiddler thefiddler committed
Showing with 23 additions and 15 deletions.
  1. +23 −15 Source/OpenTK/Platform/X11/XI2Mouse.cs
View
38 Source/OpenTK/Platform/X11/XI2Mouse.cs
@@ -156,30 +156,38 @@ public XI2Mouse()
// If a display is not specified, the default display is used.
internal static bool IsSupported(IntPtr display)
{
- if (display == IntPtr.Zero)
+ try
{
- display = API.DefaultDisplay;
- }
-
- using (new XLock(display))
- {
- int major, ev, error;
- if (Functions.XQueryExtension(display, "XInputExtension", out major, out ev, out error) != 0)
+ if (display == IntPtr.Zero)
{
- XIOpCode = major;
+ display = API.DefaultDisplay;
+ }
- int minor = 2;
- while (minor >= 0)
+ using (new XLock(display))
+ {
+ int major, ev, error;
+ if (Functions.XQueryExtension(display, "XInputExtension", out major, out ev, out error) != 0)
{
- if (XI.QueryVersion(display, ref major, ref minor) == ErrorCodes.Success)
+ XIOpCode = major;
+
+ int minor = 2;
+ while (minor >= 0)
{
- XIVersion = major * 100 + minor * 10;
- return true;
+ if (XI.QueryVersion(display, ref major, ref minor) == ErrorCodes.Success)
+ {
+ XIVersion = major * 100 + minor * 10;
+ return true;
+ }
+ minor--;
}
- minor--;
}
}
}
+ catch (DllNotFoundException e)
+ {
+ Debug.Print(e.ToString());
+ Debug.Print("XInput2 extension not supported. Mouse support will suffer.");
+ }
return false;
}

0 comments on commit 452d61b

Please sign in to comment.
Something went wrong with that request. Please try again.