18
18
clearTimeout(wdw.timeout);
19
19
wdw.timeout = setTimeout(function() {
20
20
if (el.scroll)
21
+ {
22
+ window.removeEventListener('scroll', onScroll, true);
21
23
el.scroll(sleft, stop);
24
+ setTimeout(function() { window.addEventListener('scroll', onScroll, true); }, 10);
25
+ }
22
26
}, 100);
23
27
}
24
28
}
@@ -116,57 +120,38 @@ LR"(
116
120
}
117
121
return selectorList.join(' > ');
118
122
}
119
- window.addEventListener('click', function(e) {
123
+ function onScroll(e) {
124
+ var el = ('scrollingElement' in e.target) ? e.target.scrollingElement : e.target;
125
+ var sel = getElementSelector(el);
126
+ var msg = {
127
+ "event": "scroll",
128
+ "window": getWindowLocation(),
129
+ "selector": sel,
130
+ "left": ((el.scrollWidth == el.clientWidth) ? 0 : (el.scrollLeft / (el.scrollWidth - el.clientWidth))),
131
+ "top": ((el.scrollHeight == el.clientHeight) ? 0 : (el.scrollTop / (el.scrollHeight - el.clientHeight)))
132
+ };
133
+ window.chrome.webview.postMessage(JSON.stringify(msg));
134
+ }
135
+ function onClick(e) {
120
136
if (wdw.inClick)
121
137
return;
122
138
var sel = getElementSelector(e.target);
123
139
var msg = { "event": "click", "window": getWindowLocation(), "selector": sel };
124
140
window.chrome.webview.postMessage(JSON.stringify(msg));
125
- }, true);
126
- window.addEventListener('input', function(e) {
141
+ }
142
+ function onInput (e) {
127
143
var sel = getElementSelector(e.target);
128
144
var msg = { "event": "input", "window": getWindowLocation(), "selector": sel, "value": e.target.value };
129
145
window.chrome.webview.postMessage(JSON.stringify(msg));
130
- }, true);
131
- /*
132
- var forms = document.querySelectorAll('form');
133
- forms.forEach(function(form) {
134
- form.addEventListener('submit', function(e) {
135
- if (wdw.inSubmit)
136
- return;
137
- var sel = getElementSelector(e.target);
138
- var msg = { "event": "submit", "window": getWindowLocation(), "selector": sel };
139
- window.chrome.webview.postMessage(JSON.stringify(msg));
140
- });
141
- }, true);
142
- window.addEventListener('keydown', function(e) {
143
- if (wdw.inKeydown)
144
- return;
145
- var sel = getElementSelector(e.target);
146
- var msg = { "event": "keydown", "window": getWindowLocation(), "selector": sel, "altKey": e.altKey, "code": e.code, "ctrlKey": e.ctrlKey, "isComposing": e.isComposing, "key": e.key, "locale": e.locale, "location": e.location, "metaKey": e.metaKey, "repeat": e.repeat, "shiftKey": e.shiftKey };
147
- window.chrome.webview.postMessage(JSON.stringify(msg));
148
- }, true);
149
- */
150
- window.addEventListener('dblclick', function(e) {
146
+ }
147
+ function onDblClick(e) {
151
148
var el = e.target;
152
149
var sel = getElementSelector(el);
153
150
var wwdid = ('wwdid' in el.dataset) ? el.dataset['wwdid'] : (('wwdid' in el.parentElement.dataset) ? el.parentElement.dataset['wwdid'] : -1);
154
151
var msg = { "event": "dblclick", "window": getWindowLocation(), "selector": sel, "wwdid": parseInt(wwdid) };
155
152
window.chrome.webview.postMessage(JSON.stringify(msg));
156
- }, true);
157
- window.addEventListener('scroll', function(e) {
158
- var el = ('scrollingElement' in e.target) ? e.target.scrollingElement : e.target;
159
- var sel = getElementSelector(el);
160
- var msg = {
161
- "event": "scroll",
162
- "window": getWindowLocation(),
163
- "selector": sel,
164
- "left": ((el.scrollWidth == el.clientWidth) ? 0 : (el.scrollLeft / (el.scrollWidth - el.clientWidth))),
165
- "top": ((el.scrollHeight == el.clientHeight) ? 0 : (el.scrollTop / (el.scrollHeight - el.clientHeight)))
166
- };
167
- window.chrome.webview.postMessage(JSON.stringify(msg));
168
- }, true);
169
- window.chrome.webview.addEventListener('message', function(arg) {
153
+ }
154
+ function onMessage(arg) {
170
155
var data = arg.data;
171
156
switch (data.event) {
172
157
case "scroll":
@@ -186,8 +171,32 @@ LR"(
186
171
syncKeydown(data);
187
172
break;
188
173
*/
189
- }
190
- });
174
+ }
175
+ }
176
+ window.addEventListener('click', onClick, true);
177
+ window.addEventListener('input', onInput, true);
178
+ window.addEventListener('dblclick', onDblClick, true);
179
+ window.addEventListener('scroll', onScroll, true);
180
+ window.chrome.webview.addEventListener('message', onMessage);
181
+ /*
182
+ var forms = document.querySelectorAll('form');
183
+ forms.forEach(function(form) {
184
+ form.addEventListener('submit', function(e) {
185
+ if (wdw.inSubmit)
186
+ return;
187
+ var sel = getElementSelector(e.target);
188
+ var msg = { "event": "submit", "window": getWindowLocation(), "selector": sel };
189
+ window.chrome.webview.postMessage(JSON.stringify(msg));
190
+ });
191
+ }, true);
192
+ window.addEventListener('keydown', function(e) {
193
+ if (wdw.inKeydown)
194
+ return;
195
+ var sel = getElementSelector(e.target);
196
+ var msg = { "event": "keydown", "window": getWindowLocation(), "selector": sel, "altKey": e.altKey, "code": e.code, "ctrlKey": e.ctrlKey, "isComposing": e.isComposing, "key": e.key, "locale": e.locale, "location": e.location, "metaKey": e.metaKey, "repeat": e.repeat, "shiftKey": e.shiftKey };
197
+ window.chrome.webview.postMessage(JSON.stringify(msg));
198
+ }, true);
199
+ */
191
200
})();
192
201
)" ;
193
202
@@ -1164,7 +1173,6 @@ class CWebDiffWindow : public IWebDiffWindow
1164
1173
if (*count == m_nPanes && callback2)
1165
1174
callback2->Invoke ({ hr, nullptr });
1166
1175
}
1167
-
1168
1176
}
1169
1177
return S_OK;
1170
1178
}
0 commit comments