Explorar o código

JS: Use ResizeObserver when possible (#1013)

Pavel Alexandrov %!s(int64=3) %!d(string=hai) anos
pai
achega
72bc7baaf9
Modificáronse 1 ficheiros con 9 adicións e 1 borrados
  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();