diff --git a/src/Tizen.NUI/src/internal/Interop/Interop.Window.cs b/src/Tizen.NUI/src/internal/Interop/Interop.Window.cs
index af549db0302..ffd7ce6f88f 100755
--- a/src/Tizen.NUI/src/internal/Interop/Interop.Window.cs
+++ b/src/Tizen.NUI/src/internal/Interop/Interop.Window.cs
@@ -384,6 +384,14 @@ internal static partial class Window
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Window_IsAlwaysOnTop")]
[return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
public static extern bool IsAlwaysOnTop(global::System.Runtime.InteropServices.HandleRef window);
+
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Window_RelativeMotionGrab")]
+ [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
+ public static extern bool RelativeMotionGrab(global::System.Runtime.InteropServices.HandleRef window, uint boundary);
+
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Window_RelativeMotionUnGrab")]
+ [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
+ public static extern bool RelativeMotionUnGrab(global::System.Runtime.InteropServices.HandleRef window);
}
}
}
diff --git a/src/Tizen.NUI/src/public/Window/Window.cs b/src/Tizen.NUI/src/public/Window/Window.cs
index 4dce26fc600..1567a5ccc74 100755
--- a/src/Tizen.NUI/src/public/Window/Window.cs
+++ b/src/Tizen.NUI/src/public/Window/Window.cs
@@ -416,6 +416,44 @@ public enum ResizeDirection
BottomRight = 8,
}
+ ///
+ /// The Pointer edge boundary for grab.
+ ///
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public enum PointerBoundary
+ {
+ ///
+ /// Default value
+ ///
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ None = 0,
+
+ ///
+ /// Top
+ ///
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Top = 1,
+
+ ///
+ /// Right
+ ///
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Right = 2,
+
+ ///
+ /// Bottom
+ ///
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Bottom = 3,
+
+ ///
+ /// Left
+ ///
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Left = 4,
+
+ }
+
///
/// The stage instance property (read-only).
/// Gets the current window.
@@ -2549,6 +2587,30 @@ public bool IsAlwaysOnTop
}
}
+ ///
+ /// Requests relative motion grab
+ ///
+ /// True if RelativeMotionGrab succeeds.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public bool RelativeMotionGrab(PointerBoundary boundary)
+ {
+ bool ret = Interop.Window.RelativeMotionGrab(SwigCPtr, (uint)boundary);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ ///
+ /// Requests relative motion ungrab
+ ///
+ /// True if RelativeMotionGrab succeeds.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public bool RelativeMotionUnGrab()
+ {
+ bool ret = Interop.Window.RelativeMotionUnGrab(SwigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
IntPtr IWindowProvider.WindowHandle => GetNativeWindowHandler();
float IWindowProvider.X => WindowPosition.X;
float IWindowProvider.Y => WindowPosition.Y;