Permalink
Browse files

[X11] Fixed current resolution detection.

  • Loading branch information...
1 parent dc12128 commit 4005710b999e2d108ffcecd6183f97d9ce043815 @thefiddler thefiddler committed Dec 30, 2013
Showing with 14 additions and 1 deletion.
  1. +14 −1 Source/OpenTK/Platform/X11/X11DisplayDevice.cs
@@ -221,7 +221,20 @@ bool QueryXRandR(List<DisplayDevice> devices)
int current_resolution_index = Functions.XRRConfigCurrentConfiguration(screen_config, out current_rotation);
if (dev.Bounds == Rectangle.Empty)
- dev.Bounds = new Rectangle(0, 0, available_res[current_resolution_index].Width, available_res[current_resolution_index].Height);
+ {
+ // We have added depths.Length copies of each resolution
+ // Adjust the return value of XRRGetScreenInfo to retrieve the correct resolution
+ int index = current_resolution_index * depths.Length;
+
+ // Make sure we are within the bounds of the available_res array
+ if (index >= available_res.Count)
+ {
+ // If not, use the return value of XRRGetScreenInfo directly
+ index = current_resolution_index;
+ }
+ DisplayResolution current_resolution = available_res[index];
+ dev.Bounds = new Rectangle(0, 0, current_resolution.Width, current_resolution.Height);
+ }
dev.BitsPerPixel = current_depth;
dev.RefreshRate = current_refresh_rate;
dev.AvailableResolutions = available_res;

0 comments on commit 4005710

Please sign in to comment.