From 7121c62301cf07f7a97b5b74a8212ad3f70a2e0f Mon Sep 17 00:00:00 2001 From: "huayong.xu" Date: Wed, 14 Dec 2022 15:40:51 +0800 Subject: [PATCH] [Tizen] Add an API for 'create,window' event. Change-Id: I14a5de93af7427813d826927caaa5a464013e980 --- dali-csharp-binder/src/web-view-wrap.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/dali-csharp-binder/src/web-view-wrap.cpp b/dali-csharp-binder/src/web-view-wrap.cpp index dc049b0..6c2479e 100755 --- a/dali-csharp-binder/src/web-view-wrap.cpp +++ b/dali-csharp-binder/src/web-view-wrap.cpp @@ -41,7 +41,7 @@ #include "common.h" /* Callback for returning strings to C# without leaking memory */ -typedef char *(SWIGSTDCALL *SWIG_CSharpStringHelperCallback)(const char*); +using SWIG_CSharpStringHelperCallback = char* (SWIGSTDCALL*)(const char*); extern SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback; #ifdef __cplusplus @@ -1020,6 +1020,23 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_RegisterNavigationPolicyDecidedC } } +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_RegisterNewWindowCreatedCallback(void * jarg1, void * jarg2) { + Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *)jarg1; + void (*handler)(Dali::Toolkit::WebView*&) = (void (*)(Dali::Toolkit::WebView*&))jarg2; + { + try { + (arg1)->RegisterNewWindowCreatedCallback([handler](Dali::WebEnginePlugin*& plugin) { + Dali::Toolkit::WebView* outView = nullptr; + handler(outView); + if (outView != nullptr) + { + plugin = outView->GetPlugin(); + } + }); + } CALL_CATCH_EXCEPTION(); + } +} + SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_RegisterCertificateConfirmedCallback(void * jarg1, void * jarg2) { Dali::Toolkit::WebView *arg1 = (Dali::Toolkit::WebView *)jarg1; void (*handler)(Dali::WebEngineCertificate*) = (void (*)(Dali::WebEngineCertificate*))jarg2; -- 2.7.4