소스 검색

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();