Browse Source

Fix X11 screens implementation for some old/weird setups

pull/4281/head
Nikita Tsukanov 6 years ago
parent
commit
1ae7500691
  1. 18
      src/Avalonia.X11/X11Screens.cs

18
src/Avalonia.X11/X11Screens.cs

@ -48,9 +48,13 @@ namespace Avalonia.X11
var pwa = (IntPtr*)prop;
var wa = new PixelRect(pwa[0].ToInt32(), pwa[1].ToInt32(), pwa[2].ToInt32(), pwa[3].ToInt32());
foreach (var s in screens)
foreach (var s in screens)
{
s.WorkingArea = s.Bounds.Intersect(wa);
if (s.WorkingArea.Width <= 0 || s.WorkingArea.Height <= 0)
s.WorkingArea = s.Bounds;
}
XFree(prop);
return screens;
@ -134,8 +138,14 @@ namespace Avalonia.X11
settings.GlobalScaleFactor)
});
}
Screens = new[] {new X11Screen(new PixelRect(0, 0, 1920, 1280), true, "Default", null, settings.GlobalScaleFactor)};
else
{
Screens = new[]
{
new X11Screen(new PixelRect(0, 0, 1920, 1280), true, "Default", null,
settings.GlobalScaleFactor)
};
}
}
public X11Screen[] Screens { get; }

Loading…
Cancel
Save