From 2ec2e855a26856dd6691ca54c94bad105feabcc3 Mon Sep 17 00:00:00 2001
From: Sven Speckmaier <sps@ipunkt.biz>
Date: Wed, 30 May 2018 07:19:38 +0200
Subject: [PATCH] multi line javascript used from scripts/scripts.h

---
 src/input.c                             | 21 +++++++++------------
 src/scripts/focus_editor_map_element.js |  2 ++
 src/scripts/focus_element_by_id.js      |  2 ++
 src/scripts/set_editor_map_element.js   |  4 ++++
 4 files changed, 17 insertions(+), 12 deletions(-)
 create mode 100644 src/scripts/focus_editor_map_element.js
 create mode 100644 src/scripts/focus_element_by_id.js
 create mode 100644 src/scripts/set_editor_map_element.js

diff --git a/src/input.c b/src/input.c
index 0933bb1..9fbde58 100644
--- a/src/input.c
+++ b/src/input.c
@@ -26,6 +26,7 @@
 #include "main.h"
 #include "normal.h"
 #include "util.h"
+#include "scripts/scripts.h"
 #include "ext-proxy.h"
 
 typedef struct {
@@ -139,12 +140,12 @@ VbResult input_open_editor(Client *c)
     idreturn = ext_proxy_eval_script_sync(c, "vimb_input_mode_element.id");
     g_variant_get(idreturn, "(bs)", &idSuccess, &id);
 
+	 /**
+	  * Special case: the input element does not have an id assigned to it 
+	  **/
     if( !idSuccess || !id || strlen(id) == 0) {
         element_map_key = element_map_next_key++;
-        char *js_command = g_strdup_printf(
-                "if ( typeof(vimb_editor_map) !== 'object' ) { var vimb_editor_map = new Map; } "
-                "vimb_editor_map.set(\"%lu\", vimb_input_mode_element)"
-                , element_map_key);
+        char *js_command = g_strdup_printf(JS_SET_EDITOR_MAP_ELEMENT, element_map_key);
         ext_proxy_eval_script(c, js_command, NULL);
         g_free(js_command);
     }
@@ -229,15 +230,11 @@ static void resume_editor(GPid pid, int status, EditorData *data)
     }
 
     if( data->element_id && strlen(data->element_id) > 0 ) {
-        jscode_enable = g_strdup_printf(
-                    "document.getElementById(\"%s\").disabled=false;"
-                    "document.getElementById(\"%s\").focus()"
-                     , data->element_id, data->element_id);
+        jscode_enable = g_strdup_printf(JS_FOCUS_ELEMENT_BY_ID,
+				  data->element_id, data->element_id);
     } else {
-        jscode_enable = g_strdup_printf(
-                    "vimb_editor_map.get(\"%lu\").disabled=false;"
-                    "vimb_editor_map.get(\"%lu\").focus()"
-                     , data->element_map_key, data->element_map_key);
+        jscode_enable = g_strdup_printf(JS_FOCUS_EDITOR_MAP_ELEMENT,
+				  data->element_map_key, data->element_map_key);
     }
     ext_proxy_eval_script(data->c, jscode_enable, NULL);
     g_free(jscode_enable);
diff --git a/src/scripts/focus_editor_map_element.js b/src/scripts/focus_editor_map_element.js
new file mode 100644
index 0000000..cb8744e
--- /dev/null
+++ b/src/scripts/focus_editor_map_element.js
@@ -0,0 +1,2 @@
+vimb_editor_map.get("%lu").disabled=false;
+vimb_editor_map.get("%lu").focus()
diff --git a/src/scripts/focus_element_by_id.js b/src/scripts/focus_element_by_id.js
new file mode 100644
index 0000000..309a8a4
--- /dev/null
+++ b/src/scripts/focus_element_by_id.js
@@ -0,0 +1,2 @@
+document.getElementById("%s").disabled=false;
+document.getElementById("%s").focus()
diff --git a/src/scripts/set_editor_map_element.js b/src/scripts/set_editor_map_element.js
new file mode 100644
index 0000000..ba9bb54
--- /dev/null
+++ b/src/scripts/set_editor_map_element.js
@@ -0,0 +1,4 @@
+if ( typeof(vimb_editor_map) !== 'object' ) { 
+	var vimb_editor_map = new Map; 
+}
+vimb_editor_map.set("%lu", vimb_input_mode_element)
-- 
2.20.1