Browse Source

Replaced ITopLevelImpl.SetOwnder by SetInputRoot

pull/227/head
Nikita Tsukanov 11 years ago
parent
commit
7529ab6536
  1. 12
      src/Gtk/Perspex.Gtk/WindowImpl.cs
  2. 2
      src/Perspex.Controls/Platform/ITopLevelImpl.cs
  3. 2
      src/Perspex.Controls/TopLevel.cs
  4. 16
      src/Windows/Perspex.Win32/WindowImpl.cs

12
src/Gtk/Perspex.Gtk/WindowImpl.cs

@ -16,7 +16,7 @@ namespace Perspex.Gtk
public class WindowImpl : Gtk.Window, IWindowImpl
{
private TopLevel _owner;
private IInputRoot _inputRoot;
private IPlatformHandle _windowHandle;
@ -105,9 +105,9 @@ namespace Perspex.Gtk
return new Point(point.X + x, point.Y + y);
}
public void SetOwner(TopLevel owner)
public void SetInputRoot(IInputRoot inputRoot)
{
_owner = owner;
_inputRoot = inputRoot;
}
public void SetTitle(string title)
@ -158,7 +158,7 @@ namespace Perspex.Gtk
var e = new RawMouseEventArgs(
GtkMouseDevice.Instance,
evnt.Time,
_owner,
_inputRoot,
evnt.Button == 0
? RawMouseEventType.LeftButtonDown
: evnt.Button == 1 ? RawMouseEventType.RightButtonDown : RawMouseEventType.MiddleButtonDown,
@ -172,7 +172,7 @@ namespace Perspex.Gtk
var e = new RawMouseEventArgs(
GtkMouseDevice.Instance,
evnt.Time,
_owner,
_inputRoot,
evnt.Button == 0
? RawMouseEventType.LeftButtonUp
: evnt.Button == 1 ? RawMouseEventType.RightButtonUp : RawMouseEventType.MiddleButtonUp,
@ -241,7 +241,7 @@ namespace Perspex.Gtk
var e = new RawMouseEventArgs(
GtkMouseDevice.Instance,
evnt.Time,
_owner,
_inputRoot,
RawMouseEventType.Move,
position, GetModifierKeys(evnt.State));
Input(e);

2
src/Perspex.Controls/Platform/ITopLevelImpl.cs

@ -30,7 +30,7 @@ namespace Perspex.Platform
void Invalidate(Rect rect);
void SetOwner(TopLevel owner);
void SetInputRoot(IInputRoot inputRoot);
Point PointToScreen(Point point);

2
src/Perspex.Controls/TopLevel.cs

@ -111,7 +111,7 @@ namespace Perspex.Controls
LayoutManager = TryGetService<ILayoutManager>(dependencyResolver);
_renderManager = TryGetService<IRenderManager>(dependencyResolver);
PlatformImpl.SetOwner(this);
PlatformImpl.SetInputRoot(this);
PlatformImpl.Activated = HandleActivated;
PlatformImpl.Deactivated = HandleDeactivated;
PlatformImpl.Closed = HandleClosed;

16
src/Windows/Perspex.Win32/WindowImpl.cs

@ -31,10 +31,12 @@ namespace Perspex.Win32
private IntPtr _hwnd;
private TopLevel _owner;
private IInputRoot _owner;
private bool _trackingMouse;
private bool _isActive;
public WindowImpl()
{
CreateWindow();
@ -163,9 +165,9 @@ namespace Perspex.Win32
return new Point(p.X, p.Y);
}
public void SetOwner(TopLevel owner)
public void SetInputRoot(IInputRoot inputRoot)
{
_owner = owner;
_owner = inputRoot;
}
public void SetTitle(string title)
@ -181,13 +183,13 @@ namespace Perspex.Win32
public virtual IDisposable ShowDialog()
{
var disabled = s_instances.Where(x => x != this && x.IsEnabled).ToList();
TopLevel activated = null;
WindowImpl activated = null;
foreach (var window in disabled)
{
if (window._owner.IsActive)
if (window._isActive)
{
activated = window._owner;
activated = window;
}
window.IsEnabled = false;
@ -253,6 +255,7 @@ namespace Perspex.Win32
{
case UnmanagedMethods.WindowActivate.WA_ACTIVE:
case UnmanagedMethods.WindowActivate.WA_CLICKACTIVE:
_isActive = true;
if (Activated != null)
{
Activated();
@ -261,6 +264,7 @@ namespace Perspex.Win32
break;
case UnmanagedMethods.WindowActivate.WA_INACTIVE:
_isActive = false;
if (Deactivated != null)
{
Deactivated();

Loading…
Cancel
Save