Browse Source

Remove code duplication

pull/1556/head
Wiesław Šoltés 9 years ago
parent
commit
7b56a5cc1c
  1. 12
      src/Avalonia.Input/DragDropDevice.cs

12
src/Avalonia.Input/DragDropDevice.cs

@ -19,11 +19,11 @@ namespace Avalonia.Input
return null; return null;
} }
private DragDropEffects RaiseDragEvent(Interactive target, Point targetLocation, RoutedEvent<DragEventArgs> routedEvent, DragDropEffects operation, IDataObject data) private DragDropEffects RaiseDragEvent(Interactive target, IInputElement inputRoot, Point point, RoutedEvent<DragEventArgs> routedEvent, DragDropEffects operation, IDataObject data)
{ {
if (target == null) if (target == null)
return DragDropEffects.None; return DragDropEffects.None;
var args = new DragEventArgs(routedEvent, data, target, targetLocation) var args = new DragEventArgs(routedEvent, data, target, target != null ? inputRoot.TranslatePoint(point, target) : point)
{ {
RoutedEvent = routedEvent, RoutedEvent = routedEvent,
DragEffects = operation DragEffects = operation
@ -35,7 +35,7 @@ namespace Avalonia.Input
private DragDropEffects DragEnter(IInputElement inputRoot, Point point, IDataObject data, DragDropEffects effects) private DragDropEffects DragEnter(IInputElement inputRoot, Point point, IDataObject data, DragDropEffects effects)
{ {
_lastTarget = GetTarget(inputRoot, point); _lastTarget = GetTarget(inputRoot, point);
return RaiseDragEvent(_lastTarget, _lastTarget != null ? inputRoot.TranslatePoint(point, _lastTarget) : point, DragDrop.DragEnterEvent, effects, data); return RaiseDragEvent(_lastTarget, inputRoot, point, DragDrop.DragEnterEvent, effects, data);
} }
private DragDropEffects DragOver(IInputElement inputRoot, Point point, IDataObject data, DragDropEffects effects) private DragDropEffects DragOver(IInputElement inputRoot, Point point, IDataObject data, DragDropEffects effects)
@ -43,13 +43,13 @@ namespace Avalonia.Input
var target = GetTarget(inputRoot, point); var target = GetTarget(inputRoot, point);
if (target == _lastTarget) if (target == _lastTarget)
return RaiseDragEvent(target, _lastTarget != null ? inputRoot.TranslatePoint(point, _lastTarget) : point, DragDrop.DragOverEvent, effects, data); return RaiseDragEvent(target, inputRoot, point, DragDrop.DragOverEvent, effects, data);
try try
{ {
if (_lastTarget != null) if (_lastTarget != null)
_lastTarget.RaiseEvent(new RoutedEventArgs(DragDrop.DragLeaveEvent)); _lastTarget.RaiseEvent(new RoutedEventArgs(DragDrop.DragLeaveEvent));
return RaiseDragEvent(target, _lastTarget != null ? inputRoot.TranslatePoint(point, _lastTarget) : point, DragDrop.DragEnterEvent, effects, data); return RaiseDragEvent(target, inputRoot, point, DragDrop.DragEnterEvent, effects, data);
} }
finally finally
{ {
@ -75,7 +75,7 @@ namespace Avalonia.Input
{ {
try try
{ {
return RaiseDragEvent(_lastTarget, _lastTarget != null ? inputRoot.TranslatePoint(point, _lastTarget) : point, DragDrop.DropEvent, effects, data); return RaiseDragEvent(_lastTarget, inputRoot, point, DragDrop.DropEvent, effects, data);
} }
finally finally
{ {

Loading…
Cancel
Save