@@ -85,7 +85,7 @@ class CWebDiffWindow : public IWebDiffWindow
85
85
std::wstring userDataFolder = GetUserDataFolderPath (i);
86
86
ComPtr<IWebDiffCallback> callback2 (callback);
87
87
hr = m_webWindow[i].Create (m_hInstance, m_hWnd, urls[i], userDataFolder.c_str (),
88
- m_size, m_fitToWindow, m_zoom, m_userAgent, GetScriptOnLoad (), nullptr ,
88
+ m_size, m_fitToWindow, m_zoom, m_userAgent, nullptr ,
89
89
[this , i, callback2](WebDiffEvent::EVENT_TYPE event, IUnknown* sender, IUnknown* args)
90
90
{
91
91
WebDiffEvent ev{};
@@ -131,6 +131,7 @@ class CWebDiffWindow : public IWebDiffWindow
131
131
}
132
132
else if (event == WebDiffEvent::NavigationCompleted)
133
133
{
134
+ addEventListener (sender, ev.pane , nullptr );
134
135
m_documentLoaded[ev.pane ] = true ;
135
136
if ((std::count (m_documentLoaded, m_documentLoaded + m_nPanes, true ) == m_nPanes) &&
136
137
(std::count (m_urlChanged, m_urlChanged + m_nPanes, true ) == m_nPanes))
@@ -141,6 +142,7 @@ class CWebDiffWindow : public IWebDiffWindow
141
142
}
142
143
else if (event == WebDiffEvent::FrameNavigationCompleted)
143
144
{
145
+ addEventListener (sender,ev.pane , nullptr );
144
146
}
145
147
else if (event == WebDiffEvent::GoBacked)
146
148
{
@@ -852,6 +854,11 @@ class CWebDiffWindow : public IWebDiffWindow
852
854
return hr;
853
855
}
854
856
857
+ HRESULT addEventListener (IUnknown* sender, int pane, IWebDiffCallback* callback)
858
+ {
859
+ return m_webWindow[pane].ExecuteScript (sender, GetScriptOnLoad (), callback);
860
+ }
861
+
855
862
HRESULT syncEvent (int srcPane, const std::wstring& json)
856
863
{
857
864
for (int pane = 0 ; pane < m_nPanes; ++pane)
0 commit comments