Browse Source

JS: Use ResizeObserver when possible (#1013)

Pavel Alexandrov 3 năm trước cách đây
mục cha
commit
72bc7baaf9
1 tập tin đã thay đổi với 9 bổ sung1 xóa
  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("blur", onFocus.bind(false));
 		element.addEventListener("focus", onFocus.bind(true));
 		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){
 		canvas.addEventListener("contextmenu", function(e){
 			e.stopPropagation();
 			e.stopPropagation();