Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
{
if (touchPoint == null)
{
{
if (touchPoint == null)
{
- using Hover hover = GetLastHoverEvent();
+ Hover hover = GetLastHoverEvent();
if (hover == null || hover.GetPointCount() < 1)
{
return;
if (hover == null || hover.GetPointCount() < 1)
{
return;
/// We will use weak reference of last key events.
/// Return value will be invalidated if last key event changed internally.
/// </remarks>
/// We will use weak reference of last key events.
/// Return value will be invalidated if last key event changed internally.
/// </remarks>
+ /// <remarks>
+ /// Do not Dispose this value.
+ /// </remarks>
/// <returns>The last key event the window gets.</returns>
[EditorBrowsable(EditorBrowsableState.Never)]
public Key GetLastKeyEvent()
{
/// <returns>The last key event the window gets.</returns>
[EditorBrowsable(EditorBrowsableState.Never)]
public Key GetLastKeyEvent()
{
- if (internalLastKeyEvent == null || !internalLastKeyEvent.HasBody())
+ if (internalLastKeyEvent == null)
+ // TODO : We need to make automatically release memory of these cached events in future.
+ if (!(internalLastKeyEvent?.IsNativeHandleInvalid() ?? true))
+ {
+ Interop.Key.DeleteKey(internalLastKeyEvent.SwigCPtr);
+ }
// Create empty event handle without register.
internalLastKeyEvent = new Key(Interop.Key.New(), false);
}
// Create empty event handle without register.
internalLastKeyEvent = new Key(Interop.Key.New(), false);
}
/// We will use weak reference of last touch events.
/// Return value will be invalidated if last touch event changed internally.
/// </remarks>
/// We will use weak reference of last touch events.
/// Return value will be invalidated if last touch event changed internally.
/// </remarks>
+ /// <remarks>
+ /// Do not Dispose this value.
+ /// </remarks>
/// <returns>The last touch event the window gets.</returns>
[EditorBrowsable(EditorBrowsableState.Never)]
public Touch GetLastTouchEvent()
{
/// <returns>The last touch event the window gets.</returns>
[EditorBrowsable(EditorBrowsableState.Never)]
public Touch GetLastTouchEvent()
{
- if (internalLastTouchEvent == null || !internalLastTouchEvent.HasBody())
+ if (internalLastTouchEvent == null)
+ // TODO : We need to make automatically release memory of these cached events in future.
+ if (!(internalLastTouchEvent?.IsNativeHandleInvalid() ?? true))
+ {
+ Interop.Touch.DeleteTouch(internalLastTouchEvent.SwigCPtr);
+ }
// Create empty event handle without register.
internalLastTouchEvent = new Touch(Interop.Touch.NewTouch(), false);
}
// Create empty event handle without register.
internalLastTouchEvent = new Touch(Interop.Touch.NewTouch(), false);
}
/// We will use weak reference of last hover events.
/// Return value will be invalidated if last hover event changed internally.
/// </remarks>
/// We will use weak reference of last hover events.
/// Return value will be invalidated if last hover event changed internally.
/// </remarks>
+ /// <remarks>
+ /// Do not Dispose this value.
+ /// </remarks>
/// <returns>The last hover event the window gets.</returns>
[EditorBrowsable(EditorBrowsableState.Never)]
public Hover GetLastHoverEvent()
{
/// <returns>The last hover event the window gets.</returns>
[EditorBrowsable(EditorBrowsableState.Never)]
public Hover GetLastHoverEvent()
{
- if (internalLastHoverEvent == null || !internalLastHoverEvent.HasBody())
+ if (internalLastHoverEvent == null)
+ // TODO : We need to make automatically release memory of these cached events in future.
+ if (!(internalLastHoverEvent?.IsNativeHandleInvalid() ?? true))
+ {
+ Interop.Hover.DeleteHover(internalLastHoverEvent.SwigCPtr);
+ }
// Create empty event handle without register.
internalLastHoverEvent = new Hover(Interop.Hover.New(0u), false);
}
// Create empty event handle without register.
internalLastHoverEvent = new Hover(Interop.Hover.New(0u), false);
}
localController?.Dispose();
localController?.Dispose();
+ // TODO : We need to make automatically release memory of these cached events in future.
+ if (!(internalLastKeyEvent?.IsNativeHandleInvalid() ?? true))
+ {
+ Interop.Key.DeleteKey(internalLastKeyEvent.SwigCPtr);
+ }
+ if (!(internalLastTouchEvent?.IsNativeHandleInvalid() ?? true))
+ {
+ Interop.Touch.DeleteTouch(internalLastTouchEvent.SwigCPtr);
+ }
+ if (!(internalLastHoverEvent?.IsNativeHandleInvalid() ?? true))
+ {
+ Interop.Hover.DeleteHover(internalLastHoverEvent.SwigCPtr);
+ }
+
internalLastKeyEvent?.Dispose();
internalLastKeyEvent = null;
internalLastTouchEvent?.Dispose();
internalLastTouchEvent = null;
internalLastKeyEvent?.Dispose();
internalLastKeyEvent = null;
internalLastTouchEvent?.Dispose();
internalLastTouchEvent = null;
+ internalLastHoverEvent?.Dispose();
+ internalLastHoverEvent = null;
internalHoverTimer?.Stop();
internalHoverTimer?.Dispose();
internalHoverTimer?.Stop();
internalHoverTimer?.Dispose();