Browse Source

fix x11 implementation.

pull/3943/head
Dan Walmsley 7 years ago
parent
commit
9b2ff91ea6
  1. 19
      src/Avalonia.X11/X11Window.cs

19
src/Avalonia.X11/X11Window.cs

@ -41,8 +41,6 @@ namespace Avalonia.X11
private IntPtr _renderHandle; private IntPtr _renderHandle;
private bool _mapped; private bool _mapped;
private bool _wasMappedAtLeastOnce = false; private bool _wasMappedAtLeastOnce = false;
private HashSet<X11Window> _transientChildren = new HashSet<X11Window>();
private X11Window _transientParent;
private double? _scalingOverride; private double? _scalingOverride;
private bool _disabled; private bool _disabled;
@ -775,26 +773,19 @@ namespace Avalonia.X11
bool ActivateTransientChildIfNeeded() bool ActivateTransientChildIfNeeded()
{ {
if(_disabled) if (_disabled)
{ {
GotInputWhenDisabled?.Invoke();
return false; return false;
} }
if (_transientChildren.Count == 0)
return false;
var child = _transientChildren.First();
if (!child.ActivateTransientChildIfNeeded())
child.Activate();
return true; return true;
} }
void SetTransientParent(X11Window window, bool informServer = true) void SetTransientParent(X11Window window, bool informServer = true)
{ {
_transientParent?._transientChildren.Remove(this);
_transientParent = window;
_transientParent?._transientChildren.Add(this);
if (informServer) if (informServer)
SetTransientForHint(_transientParent?._handle); SetTransientForHint(window?._handle);
} }
void SetTransientForHint(IntPtr? parent) void SetTransientForHint(IntPtr? parent)

Loading…
Cancel
Save