Browse Source

Make IME code early return instead

Adam Scott 9 months ago
parent
commit
75bf6df49a
1 changed files with 41 additions and 36 deletions
  1. 41 36
      platform/web/js/libs/library_godot_input.js

+ 41 - 36
platform/web/js/libs/library_godot_input.js

@@ -44,35 +44,38 @@ const GodotIME = {
 		},
 
 		ime_active: function (active) {
+			if (GodotIME.ime == null) {
+				return;
+			}
+
 			function focus_timer() {
 				GodotIME.active = true;
 				GodotIME.ime.focus();
 			}
 
-			if (GodotIME.ime) {
-				if (active) {
-					GodotIME.ime.style.display = 'block';
-					setInterval(focus_timer, 100);
-				} else {
-					GodotIME.ime.style.display = 'none';
-					GodotConfig.canvas.focus();
-					GodotIME.active = false;
-				}
+			if (active) {
+				GodotIME.ime.style.display = 'block';
+				setInterval(focus_timer, 100);
+			} else {
+				GodotIME.ime.style.display = 'none';
+				GodotConfig.canvas.focus();
+				GodotIME.active = false;
 			}
 		},
 
 		ime_position: function (x, y) {
-			if (GodotIME.ime) {
-				const canvas = GodotConfig.canvas;
-				const rect = canvas.getBoundingClientRect();
-				const rw = canvas.width / rect.width;
-				const rh = canvas.height / rect.height;
-				const clx = (x / rw) + rect.x;
-				const cly = (y / rh) + rect.y;
-
-				GodotIME.ime.style.left = `${clx}px`;
-				GodotIME.ime.style.top = `${cly}px`;
+			if (GodotIME.ime == null) {
+				return;
 			}
+			const canvas = GodotConfig.canvas;
+			const rect = canvas.getBoundingClientRect();
+			const rw = canvas.width / rect.width;
+			const rh = canvas.height / rect.height;
+			const clx = (x / rw) + rect.x;
+			const cly = (y / rh) + rect.y;
+
+			GodotIME.ime.style.left = `${clx}px`;
+			GodotIME.ime.style.top = `${cly}px`;
 		},
 
 		init: function (ime_cb, key_cb, code, key) {
@@ -84,20 +87,21 @@ const GodotIME = {
 				evt.preventDefault();
 			}
 			function ime_event_cb(event) {
-				if (GodotIME.ime) {
-					if (event.type === 'compositionstart') {
-						ime_cb(0, null);
-						GodotIME.ime.innerHTML = '';
-					} else if (event.type === 'compositionupdate') {
-						const ptr = GodotRuntime.allocString(event.data);
-						ime_cb(1, ptr);
-						GodotRuntime.free(ptr);
-					} else if (event.type === 'compositionend') {
-						const ptr = GodotRuntime.allocString(event.data);
-						ime_cb(2, ptr);
-						GodotRuntime.free(ptr);
-						GodotIME.ime.innerHTML = '';
-					}
+				if (GodotIME.ime == null) {
+					return;
+				}
+				if (event.type === 'compositionstart') {
+					ime_cb(0, null);
+					GodotIME.ime.innerHTML = '';
+				} else if (event.type === 'compositionupdate') {
+					const ptr = GodotRuntime.allocString(event.data);
+					ime_cb(1, ptr);
+					GodotRuntime.free(ptr);
+				} else if (event.type === 'compositionend') {
+					const ptr = GodotRuntime.allocString(event.data);
+					ime_cb(2, ptr);
+					GodotRuntime.free(ptr);
+					GodotIME.ime.innerHTML = '';
 				}
 			}
 
@@ -133,10 +137,11 @@ const GodotIME = {
 		},
 
 		clear: function () {
-			if (GodotIME.ime) {
-				GodotIME.ime.remove();
-				GodotIME.ime = null;
+			if (GodotIME.ime == null) {
+				return;
 			}
+			GodotIME.ime.remove();
+			GodotIME.ime = null;
 		},
 	},
 };