浏览代码

JS: Use ResizeObserver when possible (#1013)

Pavel Alexandrov 3 年之前
父节点
当前提交
72bc7baaf9
共有 1 个文件被更改,包括 9 次插入1 次删除
  1. 9 1
      hxd/Window.js.hx

+ 9 - 1
hxd/Window.js.hx

@@ -95,7 +95,15 @@ class Window {
 		element.addEventListener("blur", onFocus.bind(false));
 		element.addEventListener("focus", onFocus.bind(true));
 
-		js.Browser.window.addEventListener("resize", checkResize);
+		if ((js.Browser.window:Dynamic).ResizeObserver != null) {
+			// Modern solution for canvas resize monitoring, supported in most browsers, but not Haxe API.
+			var observer = js.Syntax.construct("ResizeObserver", function(e) {
+				checkResize();
+			});
+			observer.observe(canvas);
+		} else {
+			js.Browser.window.addEventListener("resize", checkResize);
+		}
 
 		canvas.addEventListener("contextmenu", function(e){
 			e.stopPropagation();