|
|
@@ -746,7 +746,6 @@ namespace Avalonia.X11
|
|
|
|
|
|
void Cleanup()
|
|
|
{
|
|
|
- SetTransientParent(null, false);
|
|
|
if (_xic != IntPtr.Zero)
|
|
|
{
|
|
|
XDestroyIC(_xic);
|
|
|
@@ -782,27 +781,15 @@ namespace Avalonia.X11
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- void SetTransientParent(X11Window window, bool informServer = true)
|
|
|
- {
|
|
|
- if (informServer)
|
|
|
- SetTransientForHint(window?._handle);
|
|
|
- }
|
|
|
-
|
|
|
- void SetTransientForHint(IntPtr? parent)
|
|
|
+ public void SetParent(IWindowImpl parent)
|
|
|
{
|
|
|
- if (parent == null || parent == IntPtr.Zero)
|
|
|
+ if (parent == null || parent.Handle == null || parent.Handle.Handle == IntPtr.Zero)
|
|
|
XDeleteProperty(_x11.Display, _handle, _x11.Atoms.XA_WM_TRANSIENT_FOR);
|
|
|
else
|
|
|
- XSetTransientForHint(_x11.Display, _handle, parent.Value);
|
|
|
+ XSetTransientForHint(_x11.Display, _handle, parent.Handle.Handle);
|
|
|
}
|
|
|
|
|
|
public void Show()
|
|
|
- {
|
|
|
- SetTransientParent(null);
|
|
|
- ShowCore();
|
|
|
- }
|
|
|
-
|
|
|
- void ShowCore()
|
|
|
{
|
|
|
_wasMappedAtLeastOnce = true;
|
|
|
XMapWindow(_x11.Display, _handle);
|
|
|
@@ -811,7 +798,6 @@ namespace Avalonia.X11
|
|
|
|
|
|
public void Hide() => XUnmapWindow(_x11.Display, _handle);
|
|
|
|
|
|
-
|
|
|
public Point PointToClient(PixelPoint point) => new Point((point.X - Position.X) / Scaling, (point.Y - Position.Y) / Scaling);
|
|
|
|
|
|
public PixelPoint PointToScreen(Point point) => new PixelPoint(
|
|
|
@@ -1032,12 +1018,7 @@ namespace Avalonia.X11
|
|
|
{
|
|
|
ChangeWMAtoms(value, _x11.Atoms._NET_WM_STATE_ABOVE);
|
|
|
}
|
|
|
-
|
|
|
- public void SetParent(IWindowImpl parent)
|
|
|
- {
|
|
|
- SetTransientParent((X11Window)parent);
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
public void SetEnabled(bool enable)
|
|
|
{
|
|
|
_disabled = !enable;
|