internal static partial class Eina
{
[DllImport(Libraries.Eina)]
- internal static extern IntPtr eina_hash_string_small_new();
+ internal static extern IntPtr eina_hash_string_small_new(IntPtr dataFreeCb);
[DllImport(Libraries.Eina)]
[return: MarshalAs(UnmanagedType.U1)]
- internal static extern bool eina_hash_add(IntPtr hash, string Key, string Value);
+ internal static extern bool eina_hash_add(IntPtr hash, IntPtr Key, IntPtr Value);
[DllImport(Libraries.Eina)]
internal static extern IntPtr eina_list_iterator_new(IntPtr list);
/// <summary>
/// Delete.
/// </summary>
- Delete,
+ Delete,
}
/// <summary>
/// </summary>
/// <since_tizen> 6 </since_tizen>
public event EventHandler<ContextMenuItemEventArgs> ContextMenuItemSelected;
-
+
/// The delegate is invoked when context menu customization is needed.
/// </summary>
/// <param name="menu">The instance of ContextMenu.</param>
/// <since_tizen> 6 </since_tizen>
public void SetUrlRequest (string url, HttpMethod httpMethod, IDictionary<string, string> httpHeaders, string httpBody)
{
- IntPtr hashHttpHeaders = Interop.Eina.eina_hash_string_small_new();
+ List<IntPtr> stringHandles = new List<IntPtr>();
+ IntPtr hashHttpHeaders = Interop.Eina.eina_hash_string_small_new(IntPtr.Zero);
+
foreach (KeyValuePair<string, string> entry in httpHeaders)
{
- Interop.Eina.eina_hash_add(hashHttpHeaders, entry.Key, entry.Value);
- }
- Interop.ChromiumEwk.ewk_view_url_request_set(_realHandle, url, httpMethod, hashHttpHeaders, httpBody);
+ IntPtr keyHandle = Marshal.StringToHGlobalAnsi(entry.Key);
+ IntPtr valueHandle = Marshal.StringToHGlobalAnsi(entry.Value);
+ Interop.Eina.eina_hash_add(hashHttpHeaders, keyHandle, valueHandle);
+ stringHandles.Add(keyHandle);
+ stringHandles.Add(valueHandle);
+ }
+ Interop.ChromiumEwk.ewk_view_url_request_set(_realHandle, url, httpMethod, hashHttpHeaders, httpBody);
+
+ foreach(IntPtr handle in stringHandles)
+ {
+ Marshal.FreeHGlobal(handle);
+ }
}
/// <summary>
_contextMenuItemSelected = new SmartEvent<ContextMenuItemEventArgs>(this, _realHandle, "contextmenu,selected", ContextMenuItemEventArgs.CreateFromSmartEvent);
_policyNavigationDecide = new SmartEvent<NavigationPolicyEventArgs>(this, _realHandle, "policy,navigation,decide", NavigationPolicyEventArgs.CreateFromSmartEvent);
_policyNewWindowDecide = new SmartEvent<NewWindowPolicyEventArgs>(this, _realHandle, "policy,newwindow,decide", NewWindowPolicyEventArgs.CreateFromSmartEvent);
- _policyResponseDecide = new SmartEvent<ResponsePolicyEventArgs>(this, _realHandle, "policy,response,decide", ResponsePolicyEventArgs.CreateFromSmartEvent);
+ _policyResponseDecide = new SmartEvent<ResponsePolicyEventArgs>(this, _realHandle, "policy,response,decide", ResponsePolicyEventArgs.CreateFromSmartEvent);
_loadStarted.On += (s, e) => { LoadStarted?.Invoke(this, EventArgs.Empty); };
_loadFinished.On += (s, e) => { LoadFinished?.Invoke(this, EventArgs.Empty); };
_contextMenuItemSelected.On += (s, e) => { ContextMenuItemSelected?.Invoke(this, e); };
_contextMenuCustomize.On += (s, e) => { _contextMenuCustomizeDelegate?.Invoke(e.Menu); };
}
-
+
}
}