From dd66c07a8c5ec4132aea36bd4c758205f390e81f Mon Sep 17 00:00:00 2001
From: Witold Filipczyk <witekfl@poczta.onet.pl>
Date: Mon, 11 Sep 2023 19:07:51 +0200
Subject: [PATCH] [mujs] element.blur()

---
 src/ecmascript/libdom/mujs/element.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/ecmascript/libdom/mujs/element.c b/src/ecmascript/libdom/mujs/element.c
index f2eeb4213..c124e2125 100644
--- a/src/ecmascript/libdom/mujs/element.c
+++ b/src/ecmascript/libdom/mujs/element.c
@@ -1525,6 +1525,18 @@ mjs_element_appendChild(js_State *J)
 	js_pushnull(J);
 }
 
+/* @element_funcs{"blur"} */
+static void
+mjs_element_blur(js_State *J)
+{
+#ifdef ECMASCRIPT_DEBUG
+	fprintf(stderr, "%s:%s\n", __FILE__, __FUNCTION__);
+#endif
+	/* We are a text-mode browser and there *always* has to be something
+	 * selected.  So we do nothing for now. (That was easy.) */
+	js_pushundefined(J);
+}
+
 static void
 mjs_element_click(js_State *J)
 {
@@ -2340,6 +2352,7 @@ mjs_push_element(js_State *J, void *node)
 		js_newuserdata(J, "element", el_private, mjs_element_finalizer);
 		addmethod(J, "addEventListener", mjs_element_addEventListener, 3);
 		addmethod(J, "appendChild",mjs_element_appendChild, 1);
+		addmethod(J, "blur",		mjs_element_blur, 0);
 		addmethod(J, "click",		mjs_element_click, 0);
 		addmethod(J, "cloneNode",	mjs_element_cloneNode, 1);
 		addmethod(J, "closest",	mjs_element_closest, 1);