multi line javascript used from scripts/scripts.h
authorSven Speckmaier <sps@ipunkt.biz>
Wed, 30 May 2018 05:19:38 +0000 (07:19 +0200)
committerSven Speckmaier <sps@ipunkt.biz>
Wed, 30 May 2018 05:19:38 +0000 (07:19 +0200)
src/input.c
src/scripts/focus_editor_map_element.js [new file with mode: 0644]
src/scripts/focus_element_by_id.js [new file with mode: 0644]
src/scripts/set_editor_map_element.js [new file with mode: 0644]

index 0933bb1..9fbde58 100644 (file)
@@ -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 (file)
index 0000000..cb8744e
--- /dev/null
@@ -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 (file)
index 0000000..309a8a4
--- /dev/null
@@ -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 (file)
index 0000000..ba9bb54
--- /dev/null
@@ -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)